繁体   English   中英

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

[英]How to find/compare a class property in a List<class>

我有一个这样的类,它存储一些数据以便以后创建一个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#中的方法或内容来做这个?

您可以使用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 Enumerable.Max方法,例如:

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

但是,如果collection为空,则此方法抛出异常。

您可以使用Linq查询:

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

使用Linq:

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

暂无
暂无

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

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