我得到了以下linq查询:
var invadersOrderedInColumns = from i in invaders
group i by i.GetPosition().X;
这将命令具有相同X位置的入侵者。我要做的下一件事是从每个列中检索具有最高Y值的入侵者。
想象一下,如果您将每个入侵者都视为下图中的黑色斑点。这将代表上述linq查询后的入侵者。每个X = Value 都是关键。
现在,从这些组(列)中的每一个,我想得到具有最高Y位置的入侵者(所以当您查看图片时,每个列的底部入侵者):
如何使用Linq查询完成此操作?
答案 0 :(得分:1)
我不太关心查询语法,但在扩展方法语法中,它看起来像这样。
var invadersOrderedInColumns = invaders
.GroupBy(d => d.GetPosition().X)
.Select(d => d.OrderByDescending(y => y.GetPosition().Y).First());