在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();