2012-02-17 8 views
2

もし私がこのようなクラスを2つ持っていれば、コレクションがdoubleのリストであるLinqサブコレクションの基準

public class Employee 
    { 
     public string Name { get; set; } 
     public string Address { get; set; } 
     public double Salary { get; set; } 
     public List<Salary> PastSalaries { get; set; } 
    } 

    public class Salary 
    { 
     public double Amount { get; set; } 
    } 

過去の給与が一定額未満だった従業員のリストを取得できます。例:

これはうまくいきますが、私の過去の給与の集計が給与の集まりではなく、2倍の集まりであった場合です。例:

public class Employee 
{ 
    public string Name { get; set; } 
    public string Address { get; set; } 
    public double Salary { get; set; } 
    **public List<double> PastSalaries { get; set; }** 
} 

どのように私は以前と同じ質問をすることができますか?

var employees = employeeList.Where(o => o.PastSalaries.Any(???? < 35000)); 

私はどのような比較をしますか?あなたが直接パラメータに比較できるように

おかげで、

答えて

2
var employees = employeeList.Where(o => o.PastSalaries.Any(p => p < 35000)); 

デリゲートへのパラメータは、今Amount性質を有する二重、ないSalaryタイプです。

1
var employees = employeeList.Where(o => o.PastSalaries.Any(p=>p < 35000)); 

これを試してください。最初のケースではあなたのタイプはSalaryであり、そのタイプのフィールドはAmountです。 この場合、doubleの値をチェックしたいので、p < 35000が正しく動作します。

+0

ヘッドライン!、ありがとう、私はそれを試みたと思った。 –

関連する問題