字典值是否可以通过列表填充而不循环

本文关键字:循环 填充 列表 是否 可以通过 字典 | 更新日期: 2023-09-27 18:33:36

我们可以有类似的东西吗 -

Dictionary<string, string> dict = new Dictionary<string, string>();
List<string> keysList=  new List<string>();
List<string>valuesList=  new List<string>();
//Assuming both the list have the same number of items
dict.keys = keysList;
dict.values = valuesList;

大多数情况下,我想知道是否有办法通过直接将它们分配给列表来填充键和值?

字典值是否可以通过列表填充而不循环

大多数情况下,我想知道是否有办法通过直接将它们分配给列表来填充键和值?

不,但只需压缩它们,然后使用ToDictionary

var dict = keysList.Zip(valuesList, (key, value) => Tuple.Create(key, value))
                   .ToDictionary(pair => pair.Item1, pair => pair.Item2);

字典,内部不会将数据存储为两个列表。 它将数据存储在哈希表中,这意味着它需要获取每个键,为其生成一个哈希,然后将项目放置在与该哈希对应的位置。 因此,添加一组项目的唯一方法是遍历该组并添加每个项目。 您可以使用 LINQ ToDictionary 方法,如另一个答案中所述,但在内部,它要做的就是遍历每个项目并将其添加到字典中。 这会阻止您看到循环,但循环仍然存在。