是否有更好的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());
当您发现自己使用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)
{
//...
}
}