【发布时间】:2020-08-30 13:59:51
【问题描述】:
考虑以下类:
public class Potato
{
[Key]
public string Farm { get; set; }
[Key]
public int Size { get; set; }
public string Trademark { get; set; }
}
public class Haybell
{
[Key]
public string color { get; set; }
public int StrawCount { get; set; }
}
public class Frog
{
[Key]
public bool IsAlive { get; set; }
[Key]
public bool IsVirulent { get; set; }
public byte LimbCount { get; set; } = 4;
public ConsoleColor Color { get; set; }
}
每个类都有带有 [Key] 属性的属性。是否可以通过它们各自的 [Key] 属性对这些类中的任何一个 IEnumerable 进行动态分组?
【问题讨论】:
-
“动态”是什么意思?使用反射构造 GroupBy 表达式?你为什么要这样做?
-
是的,这就是我要找的。因为那样我就可以做类似 .GroupByKey() 之类的事情,而不必为我拥有的每个类指定 Keys
-
你真的需要动态 GroupBy 表达式(用于 IQueryable)吗?如果是这样,伊恩默瑟回答了这一点。 Klaus Gütters 的答案要么不是动态的,要么不适用于 IQueryable。我很困惑你需要什么。
标签: c# linq grouping custom-attributes linq-method-syntax