我有一个SharePoint列表项的通用列表(列出员工)
SharePoint列表包含两列,“员工姓名”和“员工指定”
我想获得一个包含不同“Employee Designation”列值的对象List。
如何使用LINQ执行此操作?
这对我没用:
var designations = from SPListItem employee in employees
select new {Designation = employee["Employee Designation"].ToString().Distinct()};
答案 0 :(得分:7)
如果您只检索该列的字符串值,则可以通过选择字符串(而不是包含字符串属性的对象)来避免编写相等比较器。
var designations = (from SPListItem employee in employees
select employee["Employee Designation"].ToString())
.Distinct()
.ToList();
答案 1 :(得分:2)
您必须在序列上使用Distinct方法,并且需要提供IEqualityComparer<T>
的自定义实现,因此您需要为要创建的对象提供显式类。
var designations = (from SPListItem employee in employees
select new
{
Designation = employee["Employee Designation"].ToString()
}).Distinct(comparer);