我有我的类(class)名单
List<Example> exampleList
其中已经包含了所有数据。我需要创建一个字典
Dictionary<string, List<Example>> exampleDictionary
Key需要是Example.Name,value需要是Example
下面是我的代码。问题是 Example.Name 可以相同。我需要按名称分组。我需要遍历我的列表,如果名称不存在,则添加新的键和值,否则将值添加到键中。我知道我的设置有误,但我似乎无法找出正确的方法。
foreach(var x in exampleList)
{
if(!exampleDictionary.ContainsKey(x.Name)
exampleDictionary.Add(x.Name, x)
else
exampleDictionary[x.Name] = x;
}
我知道这段代码无法构建。我不确定如何设置它。
最佳答案
您可以使用 LookUp()
扩展方法:
var lookup = exampleList.ToLookUp(e => e.Name);
此方法返回 Lookup<string, Example>
,一个将键映射到值集合的一对多字典。
但是您的代码可以通过 Name
固定分组并将每个组添加到 exampleDictionary
:
foreach (var g in exampleList.GroupBy(e => e.Name))
exampleDictionary.Add(g.Key, g.ToList());
或者
var exampleDictionary = exampleList.GroupBy(e => e.Name).ToDictionary(g => g.Key, g => g.ToList());
关于c# - 将类列表添加到字典 C#,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36504393/