2013-02-26 93 views
3
public List<MAS_EMPLOYEE_TRANSFER> GetEmployeeTransferListForHR(TimecardDataContext TimecardDC) 
    { 
     List<MAS_EMPLOYEE_TRANSFER> objEmployeeTransferList = null; 
     try 
     { 
      objEmployeeTransferList = new List<MAS_EMPLOYEE_TRANSFER>(); 
      objEmployeeTransferList = TimecardDC.MAS_EMPLOYEE_TRANSFER.Where(
       employee => 
        employee.HR_ADMIN_IND=="Y").ToList();     
     } 
     finally 
     { 
     } 
     return objEmployeeTransferList; 
    } 

它显示hr管理指示符= yes的所有值列表。但是我必须从表MAS_EMPLOYEE_TRANSFER得到hr admin=yes和不同的(empid)。如何从objEmployeeTransferList获得截然不同的empId从列表中获取不同的值

+0

试着做'groupby'empId然后选择。看看[LINQ选择清单不同?](http://stackoverflow.com/questions/7572006/linq-select-distinct-from-a-list)将帮助你 – 2013-02-26 10:18:41

+0

看看这个问题:http:// stackoverflow.com/questions/912188/linq-distinct-by-name-for-populate-a-dropdown-list-with-name-and-value – 2013-02-26 10:20:20

回答

4
List<int> ids = objEmployeeTransferList 
        .Select(e => e.empId) 
        .Distinct() 
        .ToList(); 

你也可以不与所有管理记录创建内存员工列表使这个服务器端:

List<int> ids = TimecardDC.MAS_EMPLOYEE_TRANSFER 
        .Where(e => e.HR_ADMIN_IND == "Y") 
        .Select(e => e.empId) 
        .Distinct() 
        .ToList(); 
+0

从objEmployeeTransferList获取该列表后。然后只有我必须通过distict(empid)过滤。我该如何做到这一点。 – 2013-02-26 10:31:17

+0

@SaiAyyappsSekaran第一个示例从objEmployeeTransferList – 2013-02-26 10:45:56

0

你有没有尝试:

objEmployeeTransferList = TimecardDC.MAS_EMPLOYEE_TRANSFER.Where(
    employee => employee.HR_ADMIN_IND=="Y").Distinct().ToList();  
+0

获取唯一ID这是错误的。输出将只是相同的。 – 2013-02-26 10:34:05

5

有无尝试使

.Distinct().ToList(); 

Y ou可以在这里参考LINQ: Distinct values

+0

它不适合我。我想在C#对象列表中做同样的事情。 – 2017-06-29 10:50:02