FindAll List问题

baidu_23677379 2015-06-12 10:12:52

List<A> tmpA; // myKey
/*
里面有4笔资料
1
1
2
3
*/

List<B> tmpB; // myKey
/*
里面有2笔资料
1
3
*/

List<A> tmpFinal = tmpA.FindAll(p => p.myKey == tmpB.myKey)


== tmpB.myKey 这里只能给单一参数,可是我想要的是,
tmpB这个List<T>内的 mykey属性值,都是我要的我要如何改写呢><?
...全文
238 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
tcmakebest 2015-06-12
  • 打赏
  • 举报
回复
楼主是要两个集合的交集。
baidu_23677379 2015-06-12
  • 打赏
  • 举报
回复
引用 1 楼 starfd 的回复:
List<A>  tmpFinal = tmpA.FindAll(p => tmpB.Any(x=>x.myKey==p.myKey))
不知道是不是你的意思,因为你的List<B> tmpB怎么可能有myKey属性 其实用Where也一样,不过那个返回的不是List而已
引用 1 楼 starfd 的回复:
List<A>  tmpFinal = tmpA.FindAll(p => tmpB.Any(x=>x.myKey==p.myKey))
不知道是不是你的意思,因为你的List<B> tmpB怎么可能有myKey属性 其实用Where也一样,不过那个返回的不是List而已
引用 1 楼 starfd 的回复:
List<A>  tmpFinal = tmpA.FindAll(p => tmpB.Any(x=>x.myKey==p.myKey))
不知道是不是你的意思,因为你的List<B> tmpB怎么可能有myKey属性 其实用Where也一样,不过那个返回的不是List而已
引用 1 楼 starfd 的回复:
List<A>  tmpFinal = tmpA.FindAll(p => tmpB.Any(x=>x.myKey==p.myKey))
不知道是不是你的意思,因为你的List<B> tmpB怎么可能有myKey属性 其实用Where也一样,不过那个返回的不是List而已
^^ Yes 看来是我要的 因为 Lsit<A> = 计划主档 (key + 计划名称 + 计划领主持人ID) Lsit<B> = 计划成员档 (key + 成员ID) 我今天输入了 key or 计划名称 ,配合登入帐号 → 为了让只有该计划归属的人才能查到资料@@ 所以要进行筛选 刚刚有另一个想法在DB 的 Where 做掉,只是想试试看,两个方式效能好一点
  • 打赏
  • 举报
回复
List<A>  tmpFinal = tmpA.FindAll(p => tmpB.Any(x=>x.myKey==p.myKey))
不知道是不是你的意思,因为你的List<B> tmpB怎么可能有myKey属性 其实用Where也一样,不过那个返回的不是List而已

110,538

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧