我是linq的新手,所以我还在努力....
我有一组控件(每个控件都有一个Point类型的位置).我需要从集合中删除具有最低Y值(顶部控件)的控件.
一个例子将非常感谢!
Sim*_*ele 12
像这样的东西:
collection.Remove(collection.OrderBy(c => c.Location.Y).First());
Run Code Online (Sandbox Code Playgroud)
订购非常昂贵,因此根据您的使用情况,您还可以找到价值最低的商品,然后将其删除:
collection.Remove(collection.First(c => c.Y == collection.Min(c2 => c2.Y)));
Run Code Online (Sandbox Code Playgroud)
这列出最多三次列表,通常这应该比OrderBy快,但如果性能对您很重要,那么先测量.
您只需要找到该项并将其删除即可.删除非常清楚,但在查找时,您可以使用这样的Aggregate方法:
collection
.Remove(collection
.Aggregate((c1, c2) => c1.Point.Y < c2.Point.Y ? c1 : c2)
)
);
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
8273 次 |
最近记录: |