与linq分组以更新集合

时间:2015-06-23 10:02:15

标签: c# asp.net linq asp.net-mvc-4

我有一个名为allEventsDetails和集合属性的IEnumerable集合 是数字,名称和状态。

如果两个或更多Digits值相等,我需要更新相同的集合。

var categories =  from p in allEventsDetails
                  group p by p.Digit into g
                  where g.Count() > 1
                  select g.Select(s => s.status = "true");

如何使用linq执行此操作?

1 个答案:

答案 0 :(得分:0)

你可以这样做:

(from x in allEventsDetails
  group x by x.Digit into y
  where y.Count()>1
  select y).SelectMany(z=>z).ToList().ForEach(x=>x.Status="true");

你还可以做的是:

var temp= (from x in allEventsDetails
  group x by x.Digit into y
  where y.Count()>1
  select y).SelectMany(z=>z);

  foreach (var x in temp)
  {
     x.Status= "test";
  }

这样你就不必创造一个临时的"名单。