linq group by 多条件 查询 条件

LINQ中的Group By操作符允许我们按照指定的键对集合进行分组,并且可以进行多条件查询。

具体的实现方法可以使用 GroupBy 方法。 GroupBy 方法接受一个函数参数,该函数定义了分组的键值,返回值为一个新的 IGrouping<TKey,TElement> 对象,其中TKey为键类型,TElement为值类型。

如果需要对多个条件进行分组,则可以使用匿名类型来实现。例如,假设我们有一个 Person 类,其中包含 Name Age Country 属性,我们可以使用以下代码对其进行多条件分组:

var groups = people.GroupBy(p => new { p.Age, p.Country });

上面的代码将people集合按照AgeCountry两个属性进行分组。结果是一个新的集合,其中的元素类型是IGrouping<AnonymousType, Person>。在这个匿名类型中,AgeCountry属性都作为键,以便我们可以访问具有相同年龄和国家的人的集合。

我们可以进一步操作分组后的集合,例如,可以使用Select方法从每个组中选择一个或多个属性:

var result = groups.Select(g => new { Age = g.Key.Age, Country = g.Key.Country, Count = g.Count() });

上面的代码从分组后的集合中选择了AgeCountry和每个组中的元素数量,结果是一个新的集合,其中的元素类型是AnonymousType

希望这个例子可以帮助您理解如何在LINQ中进行多条件分组查询。

  •