网站设计小技巧,西安网站建设网站,整站优化工具,discuz手机模板咨询区 Benny Ae我在想为什么 C# 中没有内置带两列的 List 结构#xff0c;如#xff1a;Listint,string mylist new Listint,string();回答区 newfurniturey虽然没有内置#xff0c;但还是有其他解决方案的#xff0c;大体上有四种。使用 Tupleint, s… 咨询区 Benny Ae我在想为什么 C# 中没有内置带两列的 List 结构如Listint,string mylist new Listint,string();回答区 newfurniturey虽然没有内置但还是有其他解决方案的大体上有四种。使用 Tupleint, string如果你用的是 C#7 之前的版本而且还要坚持用 List 和 key-value 结构的话完全可以使用 Tupleint,string 参考如下代码static void Main(string[] args){ListTupleint, string mylist new ListTupleint, string();// add an itemmylist.Add(new Tupleint, 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)();}使用 Dictionaryint,string如果你关注的只是键值对完全可以用 Dictionary 替代 List。static void Main(string[] args){Dictionaryint, string mydict new Dictionaryint, string();// add an itemmydict.Add(someInt, someString);}使用 struct可以将 key-value 封装到 struct 结构体中这样更加可视化参考如下代码class Program{static void Main(string[] args){var list new ListData();}}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 大佬就总结的比较全面。