是否有更好的GroupBy到字典(或解决方案)来进行分类

本文关键字:解决方案 分类 更好 GroupBy 字典 是否 | 更新日期: 2023-09-27 18:15:13

是否有一种方法可以使用SQL-ish Linq语法编写下面的ToDictionary语句?

public class KeyedType
{
    public string Name { get; set; }
    public string Value { get; set; }
}
Dictionary<string,List<KeyedType>> groups =
    list.GroupBy((g) => g.Name)
        .ToDictionary(g => g.Key, g => g.ToList());

是否有更好的GroupBy到字典(或解决方案)来进行分类

当您发现自己使用Dictionary<TKey, List<TSomething>>时,您可能会发现您可以愉快地使用Lookup<TKey, TSomething>。如果证明是这种情况,您可以使用ToLookup来制作一个。

然而,不幸的是,无论是ToLookup还是您的代码都没有可用的查询表达式语法。

通过做GroupBy你已经反了。如果真的需要的话,试着转换成字典。例如:使用group by:

var groups = list.GroupBy(g => g.Name);
foreach (var group in groups)
{
    var groupName = group.Key;
    var valueList = group.Select(obj => obj.Value);
    foreach (var value in valueList)
    {
        //...
    }
}