请教个查询赋值问题。求大神啊~~~

睡神在睡觉 2016-03-08 08:31:28
public class P
{
public long Id{get;set;}
public string Name{get;set;}
public bool IsOpen{get;set;}
}

List<P> AllP=new List<P>(){……};//P对象的全部列表
List<P> OpenP=new List<P>(){……};//P对象的打开列表

想实现的功能:
修改AllP中的IsOpen值,如果AllP的Id在OpenP的列表中出现了,则将AllP中的IsOpen修改为true,否则修改为false

不知道用linq是不是可以实现???
...全文
1233 6 打赏 收藏 举报
写回复
6 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
SoulRed 2016-08-01
循环遍历判断即可,没什么难度的
  • 打赏
  • 举报
回复
yespie 2016-03-09
2楼正解!!
  • 打赏
  • 举报
回复
Justin-Liu 2016-03-09
引用 3 楼 qbilbo 的回复:
这里有一个问题,P是引用类型,一般来说AllP中的元素和OpenP中的元素如果Id相同,都是指向同一个对象才对,不会用到这种操作。
是的,同一个对象
  • 打赏
  • 举报
回复
qbilbo 2016-03-08
这里有一个问题,P是引用类型,一般来说AllP中的元素和OpenP中的元素如果Id相同,都是指向同一个对象才对,不会用到这种操作。
  • 打赏
  • 举报
回复
qbilbo 2016-03-08
AllP.ForEach((x) => { if (OpenP.Any((y) => y.Id == x.Id)) x.IsOpen = true; });
  • 打赏
  • 举报
回复
这个不就是个foreach的事情么?没事要linq干嘛,当然部分代码可以用linq foreach(var p in allp) { p.IsOpen=openp.Any(i=>i.Id==p.Id); }
  • 打赏
  • 举报
回复
相关推荐
发帖
LINQ

8503

社区成员

.NET技术 LINQ
社区管理员
  • LINQ
加入社区
帖子事件
创建了帖子
2016-03-08 08:31
社区公告
暂无公告