C# 从列表对象双类型查找最大单元格索引和值

C# 从列表对象双类型查找最大单元格索引和值,c#,list,double,max,min,C#,List,Double,Max,Min,我有以下代码,它在一个对象中生成4个列表(每个列表包含24个单元格): 公共类MyDataObject { 公共双数量需要{get;set;} 公共双精度{get;set;} 公共双TotalGain{get;set;} 公共双总成本{get;set;} } var L=新列表(); 对于(intz=0;z

我有以下代码,它在一个对象中生成4个列表(每个列表包含24个单元格):

公共类MyDataObject
{
公共双数量需要{get;set;}
公共双精度{get;set;}
公共双TotalGain{get;set;}
公共双总成本{get;set;}
}
var L=新列表();
对于(intz=0;z
每个列表都是
double
类型

创建完列表后,我想找到d.TotalCost的最大值和最小值

最后的目标是找到
min
max
行索引,这样我就可以在数据网格中为这些行着色


谢谢。

这可以由LINQ完成

首先使您的
MyDataObject
实现
i可比较
。执行
CompareTo
方法,如下所示:

public int CompareTo(MyDataObject other) {
    return this.TotalCost.CompareTo(other.TotalCost);
}
然后,您只需使用此函数即可找到总成本最大的数据对象的索引:

L.IndexOf(L.Max())
另一种方法是:

L.FindIndex(x => x.TotalCost == L.Max(y => y.TotalCost))

这是在WinForms中吗?Wpf如果我理解正确,你能解释一下如何在这个例子中实现Icomparable吗?我编辑了这个问题。谢谢你,伙计@sweeper@ben编辑。不过,我不太喜欢icomparable方法,我建议您使用后一种方法。
L.FindIndex(x => x.TotalCost == L.Max(y => y.TotalCost))