-1

问题是:我有一个对象列表,其中一些包含相同的 PlanId 属性值。我只想抓住那些第一次出现并忽略具有该 PlanId 的下一个对象。根本问题是数据库中的视图,但它无处不在,我不知道更改它是否会在截止日期前破坏大量内容,所以我现在正在折腾。

所以,如果我有这样的 PlanObjects 列表。

  • Plan1.PlanId = 1
  • Plan2.PlanId = 1
  • Plan3.PlanId = 2
  • Plan4.PlanId = 3
  • Plan5.PlanId = 4
  • Plan6.PlanId = 4

我想从 LINQ 中获取一个子列表(斜体表示不包括一个项目)

  • Plan1.PlanId = 1
  • Plan2.PlanId = 1
  • Plan3.PlanId = 2
  • Plan4.PlanId = 3
  • Plan5.PlanId = 4
  • Plan6.PlanId = 4

对于我的需要,先拿哪一个并不重要。Id 用于更新数据库记录。

如果我解释得不够好,请告诉我,我会编辑问题。不过,我认为这是有道理的。

4

2 回答 2

1
PlanObjects.GroupBy(p => p.PlanId).Select(r => r.First());
于 2012-04-04T14:09:59.220 回答
0

另一个答案(及其评论)提供了流畅的界面解决方案。这是查询语法:

From p In PlanObjects Group By p.PlanId Into First Select First
于 2015-10-19T13:44:47.033 回答