我需要一种方法来完成标题所暗示的内容。
该列表由一个对象组成,该对象本身包含一个列表和一个int。
我想比较对象的内容并找到哪个具有最小的int,然后返回此对象。
此刻我想出了类似的事情,尽管我正在努力继续前进。
Object temp = new Object;
for(int i = 0; i < list.Count; i++)
{
for(int j = i + 1; j < list.Count; j++)
{
if(list[i].intVar < list[j].intVar)
{
temp = list[i];
}
}
}
return temp;
感谢您的帮助 :)
答案 0 :(得分:0)
您可以使用aggregate来获取具有最低int的对象。
list.Aggregate((i, j) => i.intVar < j.intVar? i : j);
您必须包含System.Linq命名空间才能使用此扩展方法。
using System.Linq;
答案 1 :(得分:0)
如果您的list
包含一些具有intVar
属性的对象,并且您想要找到包含最小intVar
的对象,则可以使用Enumerable.Min
这样的方法:
var minValue = list.Min(x => x.intVar);
return list.First(x => x.intVar == minValue);
答案 2 :(得分:0)
按该字段排序时,只需获取列表的第一个元素即可。 Linq很适合这个:
return list.OrderBy(x => x.intVar).First();
答案 3 :(得分:0)
根据您的问题,您希望列表中的intVar值最小。
var smallestValue = list.SingleOrDefault(arg => arg.intVar== list.Min(arg => arg.intVar)