如何在List中查找/比较类属性

本文关键字:查找 比较 属性 List class | 更新日期: 2023-09-27 18:13:42

我有一个这样的类,它存储了一些数据,以便以后创建ListView:

public class ListData
{
   public string Name{get; set;}
   public int ColumnsNumber{get; set;}
   //And some other stuff!!
}

现在,我有List<ListData> datas,其中包含上述类的许多实例。为了使ListView在详细模式下,我需要知道所需列的最大数量。我该如何检查呢?

现在我有:

int max = 0;
foreach(ListData data in datas)
{
  if (data.ColumnsNumber > max) max = data.columnsNumber;
}

这似乎是有效的,但是有没有更好的方法,或者内置的方法或c#中的东西来做到这一点?

如何在List<class>中查找/比较类属性

您可以使用LINQ:

var max = datas.Select(d => d.ConlumnsNumber).Max();

通过这一行,您告诉LINQ,将您的ListData元素集合映射到ColumnsNumber集合,然后调用Max(),这是一个聚合方法。为了编译它,您应该添加using System.Linq

对于喜欢非lambda版本的人:

int max = (from d in datas
           select d.ColumnsNumber).Max();

试试LINQ。可列举的。最大方法,例如:

int max = datas.Max(d => d.ColumnsNumber);

如果集合为空,该方法将抛出异常。

您可以使用Linq查询:

int max = datas.Max(data => data.ColumnNumbers);

使用Linq:

var max = datas.Any() ? datas.Max(data => data.ColumnsNumber) : 0;