我有一个树木列表
List<Tree> trees;
...
filter_trees = trees.Distinct().ToList();
我想选择不同的树,它基于Tree
类的相等函数工作,以区分不同的树。现在我需要根据trees
中的频率(计数)来命令这些不同的树。
它可能需要group by
语句,但我更喜欢Distinct
,因为它没有参数,并且基于我编写的特定Equals
函数而工作。
答案 0 :(得分:4)
您仍然可以在一个LINQ链中完成所有操作。 GroupBy会尊重你的相等比较,然后你可以选择一个包含树和计数的复杂项目,然后按计数排序,然后拉出树。
var orderedTrees = trees
.GroupBy(t => t)
.Select(g => new
{
Tree = g.Key,
Count = g.Count()
})
.OrderBy(x => x.Count)
.Select(x => x.Tree)
.ToList();