C# 如何将此LINQ与“多个”一起使用;“在哪里?”;?
假设我有这样的结构:C# 如何将此LINQ与“多个”一起使用;“在哪里?”;?,c#,.net,linq,C#,.net,Linq,假设我有这样的结构: public class Car { public string Name; public IList<Tire> Tires; } public class Tire { public string Name; public int Size; } 此代码引发此错误:“无法将lambda表达式转换为委托类型'System.Func',因为块中的某些返回类型不能隐式转换为所需的委托返回类型” Cars.Where(x => x.
public class Car
{
public string Name;
public IList<Tire> Tires;
}
public class Tire
{
public string Name;
public int Size;
}
此代码引发此错误:“无法将lambda表达式转换为委托类型'System.Func',因为块中的某些返回类型不能隐式转换为所需的委托返回类型”
Cars.Where(x => x.Tires.Any(y => y.Size == 40));
或
视需要而定
您的版本无法工作,因为外部lambda实际上返回了一个IEnumerable
,而它需要是一个bool
Cars.Where(x => x.Tires.Any(y => y.Size == 40));
或
视需要而定
您的版本将不起作用,因为外部lambda实际上返回了一个IEnumerable
,而它需要是一个bool
,您应该改用它
你应该改用
一辆车有多个不同尺寸的轮胎,这真的是可以接受的吗?如果不是,你可能会考虑改变你的模型,不允许它实际上是一个可以接受的情况,汽车会有不同尺寸的轮胎。如果不是,您可能需要考虑更改模型以不允许
Cars.Where(x => x.Tires.All(y => y.Size == 40));
Cars.Where(x => x.Tires.Any(y => y.Size == 40));