首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >我可以使用包含方法的嵌入式lambda吗?

我可以使用包含方法的嵌入式lambda吗?
EN

Stack Overflow用户
提问于 2011-05-23 21:33:56
回答 1查看 1.4K关注 0票数 5

我想用FindAll过滤一个列表

如果我写:

代码语言:javascript
运行
复制
.FindAll(
    p => p.Field == Value && 
    p.otherObjList.Contains(otherObj));

没关系,但如果我写

代码语言:javascript
运行
复制
.FindAll(
    p => p.Field == Value && 
    p.otherObjList.Contains(
        q => q.Field1 == Value1 && 
        q.Field2 == Value2));

我得到C#语法错误消息:未知方法FindAll(?)的..。otherObjList

我不能准确地定义otherObj,因为我只知道两个字段Field1和Field2的值。

我做错了什么?在这种情况下我能做什么?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-05-23 21:39:07

大多数集合类型和LINQ版本的Contains()方法都需要与集合类型相同的参数,而不是lambda。

似乎您只是想检查是否有任何项目符合某些条件。您应该使用Any()方法。

代码语言:javascript
运行
复制
.FindAll(p => p.Field == Value
           && p.otherObjList.Any(q => q.Field1 == Value1 && q.Field2 == Value2))
票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6103323

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档