0

以下に定義されているクラスがあります

class Employee
{
    public int EmpNo{get;set;}
    public string Name{get;set;}
    public string Designation{get;set;}
}

そして私は従業員のリストを持っています

List<Employee>

FindAll() メソッドを使用して、同様の称号を持つ従業員のリストを見つけることができます。

しかし、従業員のリストではなく、EmpNo のリスト (または配列) が必要です。for ループを使用して構築できますが、述語を使用して別の答えが必要です。どうすればいいですか?またはそれは不可能ですか?以前は同様の問題の解決策があったと思いますが、今は解決していません。

FindAll(...).ToArray() のようなものかもしれません。


編集

わかりました。答えがわかりました。

FindAll(emp => emp.Designation.Equals("Executive")).Select(item => item.EmpNo).ToArray()
4

1 に答える 1

1

代替手段は次のとおりです。

employees
.Where(emp => emp.Designation.Equals("Executive"))
.Select(item => item.EmpNo).ToList()

FindAllとWhereの間にはわずかなパフォーマンスの違いがあります。これを見てください。

FindAllとWhere拡張メソッド

于 2012-11-27T09:30:24.013 に答える