【发布时间】:2019-12-14 09:09:21
【问题描述】:
我有一个类别列表(字符串)和一个特定类型的对象列表。我只需要从这个对象列表中选择那些属性在我的类别列表中的对象。
我正在尝试在Where 方法中使用lamba 表达式。我也尝试使用in 运算符,但收到以下错误消息:
无法将 lambda 表达式转换为预期的委托类型,因为块中的某些返回类型不能隐式转换为委托返回类型。
不能将类型'string'隐式转换为'bool'
var entries = programmes.Where(x => x.Program.Name in categories);
我希望返回一个子列表,其中包含属性 Name 是我的列表类别成员的对象。
【问题讨论】:
-
x => categories.Contains(x.Program.Name)? -
@juharr 我也试过了!但它不是过滤,而是返回整个对象列表:(
-
@JéssicaCarneiro 您能否发布一个示例数据集,其中包含您在输出中获得的内容。没有立即看到问题
-
你可能想要这样的东西:
var entries = programmes.Where(x => categories.Any(w => x.Program.Name == w)); -
categories中的值是什么?programmes中是否有任何条目具有不在categories中的Program.Name?还有categories是什么,是List<string>吗?