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; }
}
var list = new List<Data>();
字符串 或KeyValuePair<int, string>
using Data = System.Collections.Generic.KeyValuePair<int, string>
...
var list = new List<Data>();
list.Add(new Data(12345, "56789"));
var list = new List<Tuple<int,string>>();
list.Add(Tuple.Create(1, "Andy"));
list.Add(Tuple.Create(1, "John"));
list.Add(Tuple.Create(3, "Sally"));
foreach (var item in list)
{
Console.WriteLine(item.Item1.ToString());
Console.WriteLine(item.Item2);
}
9条答案
按热度按时间8aqjt8rx1#
根据您的需求,您有几个选择。
如果你不需要进行键/值查找,并且想坚持使用
List<>
,你可以使用Tuple<int, string>
:字符串
如果你确实想要键/值查找,你可以转向
Dictionary<int, string>
:型
xe55xuns2#
你可以使用一个immutablestruct
字符串
或
KeyValuePair<int, string>
型
wixjitnu3#
使用C# 7(VS 2017及以上版本)的新
ValueTuple
,有一个新的解决方案:字符串
这将创建一个
ValueTuple
类型的列表。如果你的目标是.NET Framework 4.7+或.NET/.NET Core,它是本机的,否则你必须获得ValueTuple package from nuget。它是一个与
Tuple
相反的结构体,Tuple
是一个类。与Tuple
类相比,它还有一个优点,就是可以创建一个命名元组,如下所示:型
这样,您就可以访问
mylist[0].myInt
和mylist[0].myString
qvk1mo1f4#
由于您的示例使用了一个通用的
List
,因此我假设您不需要对数据进行索引或唯一约束。List
可能包含重复值。如果你想确保一个唯一的密钥,可以考虑使用Dictionary<TKey, TValue>()
。字符串
gkn4icbw5#
使用C#字典的数据结构对你有好处…
字符串
您可以通过简单的方式从Ditionary中检索数据。
型
使用C#字典的更多示例... C# Dictionary
纳维
u2nhd7ah6#
不确定您的具体情况,但您有三种选择:
1.)使用字典<..,..>
2.)创建一个 Package 类来 Package 你的值,然后你就可以使用List了
3.)使用元组
mqkwyuun7#
字符串
rqqzpn5f8#
为此,您可以使用
Dictionary
,其中int
是密钥。字符串
如果你真的想使用一个列表,它可以是一个
List<Tuple<int,string>>()
,但是Tuple
类是只读的,所以你必须重新创建示例来修改它。siv3szwd9#
实现这种事情的常用方法是使用模型类并在模型类中创建属性。
字符串
并使用此类模型创建此模型的列表:
型