繁体   English   中英

比较清单项目 <Object> 到列表中的其他元素

[英]Compare items of List<Object> to other elements in the list

我需要一种方法来执行标题所建议的操作。

该列表由一个对象组成,该对象本身包含一个列表和一个int。

我想比较对象的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;

感谢您的任何帮助 :)

您可以使用聚合来获取具有最低int值的对象。

list.Aggregate((i, j) => i.intVar < j.intVar? i : j);

您必须包含System.Linq命名空间才能使用此扩展方法。

using System.Linq;

如果您的list包含一些具有intVar属性的对象,并且您想查找包含最小intVar的对象,则可以使用Enumerable.Min方法,如下所示:

var minValue = list.Min(x => x.intVar);
return list.First(x => x.intVar == minValue);

只要按该字段排序,就取列表的第一个元素。 Linq为此很好地工作:

  return list.OrderBy(x => x.intVar).First();

根据您的问题,您希望列表中的intVar值最小。

 var smallestValue = list.SingleOrDefault(arg => arg.intVar== list.Min(arg => arg.intVar)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM