Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/320.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#中从字典检索键和值时,它们是否保证共享相同的索引? Dictionary dict=new Dictionary(); 添加(“一”,1); 添加(“两”,2); 添加(“三”,3); 添加(“四”,4); List keys=dict.keys.ToList(); 列表值=dict.values.ToList();_C# - Fatal编程技术网

在c#中从字典检索键和值时,它们是否保证共享相同的索引? Dictionary dict=new Dictionary(); 添加(“一”,1); 添加(“两”,2); 添加(“三”,3); 添加(“四”,4); List keys=dict.keys.ToList(); 列表值=dict.values.ToList();

在c#中从字典检索键和值时,它们是否保证共享相同的索引? Dictionary dict=new Dictionary(); 添加(“一”,1); 添加(“两”,2); 添加(“三”,3); 添加(“四”,4); List keys=dict.keys.ToList(); 列表值=dict.values.ToList();,c#,C#,根据上面的代码,如果键列表如下所示 {“二”、“四”、“三”、“一”}值列表是否总是这样的{2,4,3,1}根据以下公式: 字典中值的顺序。ValueCollection 未指定,但其顺序与中的关联键相同 Keys属性返回的Dictionary.KeyCollection 是的,根据: 字典中值的顺序。ValueCollection 未指定,但其顺序与中的关联键相同 Keys属性返回的Dictionary.KeyCollection 是的,词典通常与相关键保持相同的顺序。是的,词典通常与相关键保

根据上面的代码,如果键列表如下所示
{“二”、“四”、“三”、“一”}
值列表是否总是这样的
{2,4,3,1}

根据以下公式:

字典中值的顺序。ValueCollection 未指定,但其顺序与中的关联键相同 Keys属性返回的Dictionary.KeyCollection

是的,根据:

字典中值的顺序。ValueCollection 未指定,但其顺序与中的关联键相同 Keys属性返回的Dictionary.KeyCollection


是的,词典通常与相关键保持相同的顺序。

是的,词典通常与相关键保持相同的顺序。

。编辑:参见Lee的answer.FYI,实现了
IEnumerable
,所以您可以在单个循环中使用键和值对其进行迭代。我很好奇;你为什么要把它们分成单独的列表,并关注索引?这看起来本质上是“危险的”,因为它们不再相互绑定,并且一个列表中的任何更改都可能会引入一个难以发现的错误(取决于您正在做什么)。我使用值创建了一个数组,用于查找与其他数组的相似性,我使用相同的键索引创建了其他数组,之后立即创建其他数组,则不会重用字典中的数据。编辑:参见Lee的answer.FYI,实现了
IEnumerable
,所以您可以在单个循环中使用键和值对其进行迭代。我很好奇;你为什么要把它们分成单独的列表,并关注索引?这看起来本质上是“危险的”,因为它们不再相互绑定,并且一个列表中的任何更改都可能会引入一个难以发现的错误(取决于您正在做什么)。我使用值创建了一个数组,用于查找与其他数组的相似性,我使用相同的键索引创建了其他数组,其他数组是紧接着创建的,那么字典中的数据就不会被重用了,错过了文档部分。投票给你!我猜想原子性/并发性警告必须在获取
之间不做任何更改的情况下复制或枚举键和值,啊,错过了文档部分。投票给你!我猜想原子性/并发性警告必须在获取
Dictionary<string, int> dict = new Dictionary<string,int>();

dict.Add("one",1);
dict.Add("two",2);
dict.Add("three",3);
dict.Add("four",4);

List<string> keys = dict.Keys.ToList();
List<int> values = dict.Values.ToList();