簡體   English   中英

從列表中獲取不同的值

[英]Get distinct values from list

    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 的所有值列表。 但是我必須從MAS_EMPLOYEE_TRANSFER表中獲取hr admin=yes和 distinct(empid) 。 如何獲得不同empId從該objEmployeeTransferList

嘗試制作

.Distinct().ToList();

您可以在此處參考LINQ:不同的值

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();

使用 GroupBy 區分

objEmployeeTransferList.GroupBy(x => x.empId).Select(g => g.First()).ToList();

你有沒有試過:

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

linq 中有一個獨特的方法應該可以解決問題。

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM