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

睡神在睡觉 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是不是可以实现???
...全文
1254 6 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
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); }

8,494

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 LINQ
社区管理员
  • LINQ
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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