C#.NET中数据的最佳收集
我必须存储这些数据:C#.NET中数据的最佳收集,c#,.net,arrays,collections,C#,.net,Arrays,Collections,我必须存储这些数据: "AL" => 1997 "AK" => 1977 ... "WY" => 1997 在.NET中存储此信息的最佳方式是什么?我应该只使用数组、arrayList还是其他集合?试试看 您可以这样使用它: var values = new Dictionary<string, int> { { "AL", 1997 }, { "AK", 1977 }, ... { "WY", 1997 }, }; Co
"AL" => 1997
"AK" => 1977
...
"WY" => 1997
在.NET中存储此信息的最佳方式是什么?我应该只使用数组、arrayList还是其他集合?试试看
您可以这样使用它:
var values = new Dictionary<string, int>
{
{ "AL", 1997 },
{ "AK", 1977 },
...
{ "WY", 1997 },
};
Console.WriteLine(values["AK"]); // Writes 1977
var值=新字典
{
{“AL”,1997},
{“AK”,1977},
...
{“WY”,1997},
};
Console.WriteLine(值[“AK”]);//1977年
字典
似乎是考虑到限制详细信息的最佳选择如果您的密钥是唯一的,请使用字典
这是一个典型的键->值存储问题,因此您最好的选择是
SortedList<string, int>
SortedList
或
字典
这里的问题是,哪一个最合适,请看:
两者之间的选择取决于您的使用情况。如果您要一次性实例化列表,那么SortedList就是您的答案,因为它使用的内存更少,并且比Dictionary(SortedDictionary)快一点。若你们想插入或删除条目,那个么字典应该是你们的选择,因为它在那个里要快一点
如果需要从两位数字符串中查找日期,可以使用
System.Collections.Generic
中的字典,具体取决于以下选项:
- 作为包含整个段落的字符串(字符数组)
- 作为一个数组,
列出这些行中的每一行的集合
- 作为
字典
,假设“AL”、“AK”等是唯一的,并且您希望基于左侧查找右侧
- 在
数据集中
-->这完全取决于您对数据做了什么,约束是什么,需求是什么。给我们更多的信息,你会得到一个非常详细的答案 如果要对其进行排序,可以使用一个,首先,根据经验法则,不应该对已知值使用非泛型集合类型,除非您使用的是2.0之前的.NET版本
用于唯一键
Dictionary<string,int32> or Dictionary<string,string>
List<KeyValuePair<string,int32>> or List<KeyValuePair<string,string>>
字典还是字典
用于非唯一键
Dictionary<string,int32> or Dictionary<string,string>
List<KeyValuePair<string,int32>> or List<KeyValuePair<string,string>>
列表或列表
您对任务集合的选择将取决于所需的数据访问方法…也可以是枚举
!你能告诉我们这两种语言之间的区别吗?在这种情况下,你会选择哪一种?那不应该是“.NET1.x”吗?“从不”是一种很强的语言。你能给你的陈述一个理由吗?@DOK,从来都不是一个强有力的词。让我们用经验法则来代替。但是,与泛型集合类型相比,使用非泛型集合类型的唯一好处是内存中库的大小。当使用泛型参数的新组合初始化新泛型类型时,将生成新类型并将其存储在内存程序集中。因此,使用的每种类型都需要(一点点)更多的内存。通过使用非泛型集合,一次只能在内存中有一种集合类型(该类型),因此可以减少内存使用。这是我能想到的唯一例外。