将List <object>的项目与列表</object>中的其他元素进行比较

时间:2014-03-02 19:32:39

标签: c# .net list

我需要一种方法来完成标题所暗示的内容。

该列表由一个对象组成,该对象本身包含一个列表和一个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;

感谢您的帮助 :)

4 个答案:

答案 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)