Критерии подсборки Linq, где коллекция - это список двойников - PullRequest
2 голосов
/ 17 февраля 2012

Если у меня есть пара таких классов;

    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; }
    }

, я могу получить список сотрудников, чья зарплата в прошлом была меньше определенной суммы;например,

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

это работает нормально, но если моя предыдущая коллекция зарплат была не коллекцией классов Заработная плата, а скорее коллекцией двойников.например,

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 ]

2 голосов
/ 17 февраля 2012
var employees = employeeList.Where(o => o.PastSalaries.Any(p => p < 35000));

Параметр для делегата теперь является двойным, а не типом Salary со свойством Amount, поэтому вы можете сравнивать параметры напрямую.

1 голос
/ 17 февраля 2012
var employees = employeeList.Where(o => o.PastSalaries.Any(p=>p < 35000)); 

Попробуйте это.В первом случае ваш тип Salary и вы проверяете Amount поле этого типа.В этом случае вы хотите проверить значение double, поэтому p <<code>35000 будет работать правильно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...