0

次の従業員のリストがあります。

List<Employee> EmployeeList =new List<Employee>();
EmployeeList.Add(new Employee{ Id=101, Name="XYZ" });
EmployeeList.Add(new Employee{ Id=102, Name="QRS" });
EmployeeList.Add(new Employee{ Id=103, Name="ABC" });
EmployeeList.Add(new Employee{ Id=1101, Name="DEF" });

選択した従業員 ID のリストは以下のとおりです。

List<long> selectedEmployeeIds={ 101,103 };

上記の EmployeeList から選択した Employees をフィルタリングします。以下のように含むを使用してみましたが、101,102,1101 として 3 つのレコードをフェッチします。

var selectedEmployees= (from record in EmployeeList where selectedEmployeeIds.Contains(record.Id.ToString()) select record).ToList(); // returning 3 records.

従業員 101,103 だけを取得するのを手伝ってくれませんか。

前もって感謝します。

4

2 に答える 2

4

文字列だけでなく、任意のデータ型で機能するToString()Useは必要ありません。タイプが であり、 に対してチェックしているEnumerable.Containsため、現在のコードでエラーが発生するはずです。selectedEmployeeIdslongstring

var selectedEmployees= (from record in EmployeeList 
                       where selectedEmployeeIds.Contains(record.Id) 
                       select record).ToList();
于 2013-02-19T11:24:09.547 に答える
0

最後に、上記のクエリの結果を次のように取得しました。

List<Employee> filteredRecords = (from a in EmployeeList join b in selectedEmployeeIds on a.ID equals b select a).ToList();
于 2013-02-21T12:21:35.537 に答える