使用LINQ C#从List <class>获取最长的字符串

时间:2015-04-27 15:24:54

标签: c# linq

获取以下列表name中最长字符串长度的最快方法是什么:

public class test {
  public int id { get; set; }
  public string name { get; set; }
}

List<test> l = new List<test>();

使用LINQ。

2 个答案:

答案 0 :(得分:2)

您可以使用LINQ

var longestLenght = l.Max(r => r.name.Length);

不确定它是否最快,但你可以通过与其他人比较来做到。

如果你想获得长度最长的物品,你可以这样做:

var itemFromListWithMaxLength = l
    .OrderByDescending(r => r.name.Length)
    .FirstOrDefault();

或者您可以针对之前检索到的longestLength进行查询,例如:

var item = l.FirstOrDefault(r => r.name.Length == longestLenght);

答案 1 :(得分:1)

这在线性时间内工作,除非你知道关于数据的特殊内容,否则不可能更快:

int maxLength = l.Max(x => x.name.Length);