如何定义一个 Listint,string 这样的 List ?
咨询区
Benny Ae
我在想为什么 C# 中没有内置带两列的 List
结构,如:
List<int,string> mylist= new List<int,string>();
回答区
newfurniturey
虽然没有内置,但还是有其他解决方案的,大体上有四种。
使用
Tuple<int, string>
如果你用的是 C#7
之前的版本,而且还要坚持用 List
和 key-value
结构的话,完全可以使用 Tuple<int,string>
,参考如下代码:
static void Main(string[] args){List<Tuple<int, string>> mylist = new List<Tuple<int, string>>();// add an itemmylist.Add(new Tuple<int, string>(someInt, someString));}
ValueTuple
如果你用的是 C#7
以后的版本,可以使用新的结构 ValueTuple
,它的结构和你的所想象的基本能保持一致。
static void Main(string[] args){List<(int, string)> mylist = new List<(int, string)>();}
值得一提的是,在 .NETFramework 4.7+
和 .NET Core
中是内置的,它是引用类型 Tuple
的值类型版本,也比 Tuple
更加灵活,比如下面这样。
static void Main(string[] args){var mylist = new List<(int myInt, string myString)>();}
使用
Dictionary<int,string>
如果你关注的只是键值对,完全可以用 Dictionary
替代 List
。
static void Main(string[] args){Dictionary<int, string> mydict = new Dictionary<int, string>();// add an itemmydict.Add(someInt, someString);}
使用
struct
可以将 key-value
封装到 struct 结构体中,这样更加可视化,参考如下代码:
class Program{static void Main(string[] args){var list = new List<Data>();}}public struct Data{public Data(int intValue, string strValue){IntegerData = intValue;StringData = strValue;}public int IntegerData { get; private set; }public string StringData { get; private set; }}
点评区
这可能源自作者的想象,数据结构中也并没有,也不需要这样的数据结构,变通方法也很好,newfurniturey 大佬就总结的比较全面。
如何定义一个 Listint,string 这样的 List ?相关推荐
- java string 数组 个数,Java - 定义一个接收String的方法,并返回一个整数数组,其中包含每个元音的数量...
(对不起提前q长 - 只是想详细说明!) 嗨,大家好, 我一直在努力让这段代码编译这么长时间,我已经到处研究过(包括在这里!)但似乎没有任何工作,我一直在收到错误.我不断调整我如何定义我的静态方法以及 ...
- 定义一个Car类,完成成员方法构造方法的多种使用方法以及基本案例
定义一个汽车类 package leiDeDingYi_leiDeShiYong;public class Car {//定义一个类String color;//成员变量 车的颜色int wheelN ...
- 定义一个泛型为String类型的List集合,统计该集合中每个字符 (注意,不是字符串)出现的次数。例如:集合中有”abc”、”bcd”两个元素, 程序最终输出结果为:
代码 import java.util.*;/*6.定义一个泛型为String类型的List集合,统计该集合中每个字符(注意,不是字符串)出现的次数.例如:集合中有"abc".&q ...
- 使用string定义一个变量如何输出
先定义一个string类型的变量: string a("A20"); 两种方法输出: //第一种 printf("\n %s \n", a.c_str()); ...
- vb6.0 定义一个公共类_纠正网上的错误:能不能自定义一个类叫java.lang.System/String?...
前语:不要为了读文章而读文章,一定要带着问题来读文章,勤思考. 作者:一汪清水 来源:https://dwz.cn/i7Pf6VwZ 最近,学习了下java类加载相关的知识.然后看到网上有一道面试题 ...
- 2、设计2个类,要求如下:[必做题] 2.1 定义一个汽车类Vehicle, 2.1.1 属性包括:汽车品牌brand(String类型)、颜色color(String类型 )和速度speed(do
2.1 定义一个汽车类Vehicle 2.1.1 属性包括:汽车品牌brand(String类型).颜色color(String类型)和速度speed(double类型). 2.1.2 至少提供一个有 ...
- Java——(1)定义一个学生类Student,包含属性:姓名(String name)、年龄(int age) (2)定义Map集合,用Student对象作为key
分析以下需求,并用代码实现: (1)定义一个学生类Student,包含属性:姓名(String name).年龄(int age) (2)定义Map集合,用Student对象作为key,用字符串(此表 ...
- 1.定义一个Father和Child类,并进行测试。 要求如下: 1)Father类为外部类,类中定义一个私有的String类型的属性name,name的值为“zhangjun”。 2)Child
1.定义一个Father和Child类,并进行测试. 要求如下: 1)Father类为外部类,类中定义一个私有的String类型的属性name,name的值为"zhangjun" ...
- 见到了“公司”定义一个Company类,那么见到了“字段”是不是也可定义一个Column类?...
既然见到了公司,我们可以定义一个Class Company ,那么我们见到了字段,是不是也可以定义一个Class ColumnInfo呢? 公司的描述信息类: 代码 public class Comp ...
最新文章
- mysql all 授权_mysql给数据库授权 GRANT ALL PRIVILEGES ON
- 开发函数计算的正确姿势——tensorflow serving
- CSS3几种新的长度单位
- java中断响应时间_Java多线程 sleep方法响应中断 sleep面试问题(与wait/notify的
- 【微软之--起源】(转载自腾讯科技)
- 基于深度学习的目标检测
- 《C和C++程序员面试秘笈》——1.4 i++与++i哪个效率更高
- Rad Software Regular Expression Designer 正则表达式工具软件
- quartz.net 时间表达式----- Cron表达式详解
- 多因素deseq2 formula 怎么理解 如何设置design 哈佛大学——差异表达分析(七)设计公式(Design formulas)多因素差异分析 多个影响因子会影响差异分析结果 多因子
- Latex 温度单位命令
- 双击ie浏览器没反应打不开的解决方法
- html怎么去除照片背景颜色,怎么去掉背景色?
- C语言编程编制职工档案管理程序,C语言 编写一个职工档案程序.doc
- 转(havel 算法)
- C源码:常用攻击程序
- 为什么靠谱的老板,不会要求员工忠诚?
- Python基础1 #博学谷IT学习技术支持
- 《青春有你》新增公益任务 张艺兴蔡依林等当导师
- 考研高等数学知识框架