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