Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/linq/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linq子集合条件,其中集合是一个双精度列表_Linq_Collections - Fatal编程技术网

Linq子集合条件,其中集合是一个双精度列表

Linq子集合条件,其中集合是一个双精度列表,linq,collections,Linq,Collections,如果我有几个这样的课程 public class Employee { public string Name { get; set; } public string Address { get; set; } public double Salary { get; set; } public List<Salary> PastSalaries { get; set; } } pu

如果我有几个这样的课程

    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; }
    }
公共类员工
{
公共字符串名称{get;set;}
公共字符串地址{get;set;}
公共双薪{get;set;}
公共列表{get;set;}
}
公费
{
公共双倍金额{get;set;}
}
我可以得到一份过去工资低于一定数额的员工名单;乙二醇

var employees = employeeList.Where(o => o.PastSalaries.Any(p => p.Amount < 35000)); 
var employees=employeeList.Where(o=>o.passpalaries.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; }**
}
公共类员工
{
公共字符串名称{get;set;}
公共字符串地址{get;set;}
公共双薪{get;set;}
**公共列表{get;set;}**
}
那我怎么能做和以前一样的查询呢

var employees = employeeList.Where(o => o.PastSalaries.Any(???? < 35000)); 
var employees=employeeList.Where(o=>o.passpalaries.Any(??<35000));
我该拿什么做比较呢

谢谢,

var employeeList=employeeList.Where(o=>o.passpalaries.Any(p=>p<35000));
var employees = employeeList.Where(o => o.PastSalaries.Any(p => p < 35000));
委托的参数现在是一个double,而不是带有
Amount
属性的
Salary
类型,因此您可以直接在参数上进行比较。

var employees=employeeList.Where(o=>o.passsalaries.Any(p=>p<35000));
var employees = employeeList.Where(o => o.PastSalaries.Any(p=>p < 35000)); 
试试这个。在第一种情况下,您的类型是
Salary
,并选中该类型的
Amount
字段。 在这种情况下,您需要检查
double
值,因此p