代码之家  ›  专栏  ›  技术社区  ›  ashwnacharya

使用LINQ选择具有不同列值的行

  •  4
  • ashwnacharya  · 技术社区  · 15 年前

    我有一个SharePoint列表项的通用列表(列出员工)

    SharePoint列表包含两列,“员工姓名”和“员工指定”

    我想得到一个对象列表,其中包含不同的“Employee Designation”列值。

    如何使用LINQ实现这一点?

    这对我不起作用:

     var designations = from SPListItem employee in employees
                        select new {Designation = employee["Employee Designation"].ToString().Distinct()};
    
    2 回复  |  直到 15 年前
        1
  •  7
  •   kbrimington    15 年前

    如果只检索该列的字符串值,则可以通过选择字符串(而不是包含字符串属性的对象)来避免编写相等比较器。

    var designations = (from SPListItem employee in employees
                        select employee["Employee Designation"].ToString())
                       .Distinct()
                       .ToList();
    
        2
  •  2
  •   Femaref    15 年前

    必须对序列使用Distinct方法,并且需要提供 IEqualityComparer<T> ,因此您需要为正在创建的对象提供一个显式类。

    var designations = (from SPListItem employee in employees
                       select new 
                       {
                         Designation = employee["Employee Designation"].ToString()
                       }).Distinct(comparer);