LINQ группировки и выбора в свойствах - PullRequest
1 голос
/ 02 июля 2010

Я все еще пытаюсь освоить LINQ, и у меня проблемы с этим.У меня есть List<Data>, например, так:

GroupId|SectionId|Content
-------------------------
      1|        3|part1-2
      1|        7|part1-1
      3|        3|part3-2
      1|        1|part1-3
      3|        1|part3-3
      3|        7|part3-1

Я хотел бы преобразовать его в IEnumerable<AnonymousType>, где каждый AnonymousType представляет один GroupId, и каждое свойство связано с определенным SectionId.Другими словами, вы бы получили что-то вроде этого:

{
  {
    GroupId = 1,
    Part1 = "part1-1", // From SectionId == 7
    Part2 = "part1-2", // From SectionId == 3
    Part3 = "part1-3", // From SectionId == 1
  },
  {
    GroupId = 3,
    Part1 = "part3-1", // From SectionId == 7
    Part2 = "part3-2", // From SectionId == 3
    Part3 = "part3-3", // From SectionId == 1
  }
}

1 Ответ

3 голосов
/ 02 июля 2010

Как это:

 from r in something
 group r by r.GroupId into g
 select new {
      GroupId = g.Key,
      Part1 = g.First(r => r.SectionId == 7).Content,
      Part2 = g.First(r => r.SectionId == 3).Content,
      Part3 = g.First(r => r.SectionId == 1).Content
 }
...