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 admin indicator=yes 的所有值列表。但是我必须从 table 中获取hr admin=yes和 distinct(empid) MAS_EMPLOYEE_TRANSFER。如何empIdobjEmployeeTransferList.

4

5 回答 5

6

尝试制作它

.Distinct().ToList();

你可以参考这里LINQ: Distinct values

于 2013-02-26T10:19:29.303 回答
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();
于 2013-02-26T10:18:31.853 回答
2

使用 GroupBy 区分

objEmployeeTransferList.GroupBy(x => x.empId).Select(g => g.First()).ToList();
于 2019-11-05T12:06:20.123 回答
0

你有没有尝试:

objEmployeeTransferList = TimecardDC.MAS_EMPLOYEE_TRANSFER.Where(
   employee => employee.HR_ADMIN_IND=="Y").Distinct().ToList();     
于 2013-02-26T10:19:06.893 回答
0

linq 中有一种独特的方法可以解决问题。

http://msdn.microsoft.com/en-gb/library/bb348436.aspx

于 2013-02-26T10:20:30.123 回答