c# - 如何从.Min扩展方法获取对象?

标签 c# linq

我有一个简单的结构:

public struct Coord
{
    public Coord (int Row, int Column )
    { /* set values */ }

    public int Row { get; }
    public int Column { get; }
}

给定:

int [ , ] myArray;
IEnumerable<Coord> myCoords;  

我想选择具有最小值的坐标并返回该坐标。 我可以通过以下方式获得最小值:

int val = myCoords.Min(c => myArray[c.Row, c.Col]);

如何才能返回“坐标”?

最佳答案

遗憾的是,您无法在普通的 LINQ to Objects 中轻松完成此操作。您可以找到最小值,然后找到具有该值的坐标,但显然这意味着要检查数据两次。

我有一个MinBy MoreLINQ中的方法你可以使用它:

Coord minCoord = myCoords.MinBy(c => myArray[c.Row, c.Col]);

关于c# - 如何从.Min扩展方法获取对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6927123/

相关文章:

c# - 比较可为空的日期时间

c# - 这两个 LINQ 查询有什么区别?

c# - PropertyGrid 显示也是类的类成员

c# - 获取所有模型类型

c# - 绘制树的算法,其中节点可以附加到深度大于自身 + 1 的其他节点

asp.net - Linq 和 EF4,内连接条件语句

c# - 如何查看 JEnumerable<JToken> 对象中的 Children().ToList() 方法?

c# - 为什么 Request.QueryString ["path"] 将所有 + 号转换为空格?

c# - iOS 从本地通知打开页面

带有 Entity Framework 4 的 ASP.NET MVC2 - 存储库中的 AsEnumerable() 或 ToList()?