我们可以有类似的东西 -
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;
大多数情况下,我想知道是否有办法通过直接将它们分配给列表来填充键和值?
答案 0 :(得分:5)
大多数情况下,我想知道是否有办法通过直接将它们分配给列表来填充键和值?
不,但只需压缩它们然后使用ToDictionary
:
var dict = keysList.Zip(valuesList, (key, value) => Tuple.Create(key, value))
.ToDictionary(pair => pair.Item1, pair => pair.Item2);
答案 1 :(得分:1)
字典,内部不会将数据存储为两个列表。它将数据存储在哈希表中,这意味着它需要获取每个键,为其生成哈希,然后将项放在与该哈希对应的位置。因此,添加一组项目的唯一方法就是遍历组并添加每个项目。你可以使用LINQ ToDictionary
方法,如另一个答案所述,但内部所有它将循环遍历每个项目并将其添加到字典中。这可以防止你看到循环,但循环仍在那里。