【发布时间】:2011-02-26 22:32:38
【问题描述】:
我刚刚发布了这个问题,但得到了我的问题的部分答案,所以我想我发布更多解释,希望得到更准确的答案。我有 2 节课:
public class Employee
{
public string Name { get; set; }
public List<Cars> Cars { get; set; }
}
public class Car
{
public int CarID { get; set; }
public CarTypes CarType { get; set; }
public enum CarTypes
{
Van,
SmallCar
}
}
我试图让所有分配有货车的员工忽略那些使用 Lambda 的 SmallCars 的员工,我尝试了这条线:
List<Employee> EmployeesWithVans = AllEmployees.Where(emps => emps.Car.Any(cartype => cartype.CarType == Car.CarTypes.Van)).ToList();
但是,如果我尝试 (.All) 将至少一辆面包车分配给员工 (.Any),这将吸引所有员工,因为并非所有员工都有面包车。
知道这是否可以使用嵌套的 Lambda 实现吗?
谢谢。
编辑:
Employee Mark = new Employee();
Mark.Cars.Add(new Car() { CarType = Car.CarTypes.Van, CarID = 12 });
Mark.Cars.Add(new Car() { CarType = Car.CarTypes.Van, CarID = 13 });
Mark.Cars.Add(new Car() { CarType = Car.CarTypes.SmallCar, CarID = 14 });
Employee Lisa = new Employee();
Lisa.Cars.Add(new Car() { CarType = Car.CarTypes.Van, CarID = 15 });
Lisa.Cars.Add(new Car() { CarType = Car.CarTypes.SmallCar, CarID = 16 });
Lisa.Cars.Add(new Car() { CarType = Car.CarTypes.SmallCar, CarID = 17 });
List<Employee> EmployeesWithVans should contain:
Employee FilteredMark contains:
Mark.Cars.Add(new Car() { CarType = Car.CarTypes.Van, CarID = 12 });
Mark.Cars.Add(new Car() { CarType = Car.CarTypes.Van, CarID = 13 });
Employee FilteredLisa contains:
Mark.Cars.Add(new Car() { CarType = Car.CarTypes.Van, CarID = 15 });
【问题讨论】:
-
看起来她想要没有小型汽车的员工......
-
你没有提到
carID等。但是我已经根据你的更新编辑了我的答案..
标签: c# linq .net-4.0 lambda nested-class