说我有一个
的集合IList<Products> products
我想按照该集合中的Product.Type进行分组,其中Type为Guid 。
考虑一下,我真的只需要按Product.Type订购,不会订购和分组返回相同的结果吗?
答案 0 :(得分:4)
订购和分组不是一回事,不是。分组通常使用排序来实现,但分组意味着将组中的项目与另一组中的项目隔离,而排序仅排列项目,以便将一个组的项目收集在集合的特定部分中。
例如:
// Grouping
var groups = products.GroupBy(x => x.Type);
foreach (var group in groups)
{
Console.WriteLine("Group " + group.Key);
foreach (var product in group)
{
// This will only enumerate over items that are in the group.
}
}
// Ordering
var ordered = products.OrderBy(x => x.Type);
foreach (var product in ordered)
{
// This will enumerate all the items, regardless of the group,
// but the items will be arranged so that the items with the same
// group are collected together
}
答案 1 :(得分:2)
您可以使用OrderBy扩展方法。
var orderedProducts = products.OrderBy(p => p.Type);
或者对于分组,请使用GroupBy:
var groupedProducts = products.GroupBy(p => p.Type);
答案 2 :(得分:0)
var list = from product in productList group product by product.Type;