如何从List <t> </t>获取FirstName属性的第一个字符

时间:2014-08-07 05:35:51

标签: c# asp.net linq

我有一个通用列表,我想从LINQ或LAMBDA中获取每个记录的第一个字符。我的班级就像:

public class User
{
   public string FirstName {get;set;}
   public string LastName {get;set;}
}

我从数据库中提取了记录并将记录填入列表。现在我想获取列表中每条记录的第一个字符,以便我可以为我的前端创建字母过滤器。

例如:如果我的List的FirstName字段包含“George”,“Abraham”,“Zulu”等...那么我的字母过滤器应包含:“A”,“G”,“Z”..

任何建议都将不胜感激。 提前致谢.............

1 个答案:

答案 0 :(得分:0)

var users = new List<User>();

...

List<char> firstLetters =
   users
   .Select(user => user.FirstName)
   .Where(firstName => firstName != null && firstName.Any())
   .Select(firstName => firstName[0])
   .ToList();

你说:

  

这样我就可以为我的前端

创建字母过滤器

听起来你可能想要唯一的字符,在这种情况下你也想要调用Distinct,如果你想按顺序调用它们可能OrderBy

List<char> firstLetters =
   users
   .Select(user => user.FirstName)
   .Where(firstName => firstName != null && firstName.Any())
   .Select(firstName => firstName[0])
   .Distinct()
   .OrderBy(ch => ch)
   .ToList();