Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/hibernate/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C#.NET中数据的最佳收集_C#_.net_Arrays_Collections - Fatal编程技术网

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,从来都不是一个强有力的词。让我们用经验法则来代替。但是,与泛型集合类型相比,使用非泛型集合类型的唯一好处是内存中库的大小。当使用泛型参数的新组合初始化新泛型类型时,将生成新类型并将其存储在内存程序集中。因此,使用的每种类型都需要(一点点)更多的内存。通过使用非泛型集合,一次只能在内存中有一种集合类型(该类型),因此可以减少内存使用。这是我能想到的唯一例外。