Выбор связанных пар LINQ - PullRequest
       6

Выбор связанных пар LINQ

0 голосов
/ 29 ноября 2011

Я использую LINQ для манипулирования данными.У меня есть 3 столбца - я хотел бы сгруппировать по одному, а затем выбрать оставшиеся 2 столбца вместе.На данный момент у меня есть что-то вроде

var query = reportDataTable.AsEnumerable()
            .GroupBy(c => c["Code"])
            .Select(g => 
                   new { 
                    Code = g.Key, 
                    Rank = g.Select(f => new 
                                       { f["rank"], 
                                         f["Name"]}).ToArray() 
                   });

, но у меня возникают проблемы из-за анонимных типов.Я знаю, что этот синтаксис сработал бы, если бы я мог ссылаться на заголовки столбцов напрямую (скажем, список или w / e).Как я могу обойти это с DataTables?Приветствия.

Редактировать:

Ну, я хотел бы иметь возможность ссылаться на поля позже, когда я приду, чтобы заполнить данные в другой источник данных:

            foreach (var q in query)
        {
            DataRow df = dp.NewRow();
            df["Code"] = q.Code;

            foreach (var rank in q.Rank)
            {
               df[rank.name] = rank.rank;
            }
            dp.Rows.Add(df);
        }

1 Ответ

0 голосов
/ 29 ноября 2011

определите ваши Rank поля. Также, если у вас есть класс для этого, вызовите конструктор связанного класса, Вы можете увидеть это ниже, до ToArray.

var query = reportDataTable.AsEnumerable()
            .GroupBy(c => c["Code"])
            .Select(g => 
              new { Code = g.Key, Rank = 
                     g.Select(f => new { rank = f["rank"], name = f["Name"]})
              .ToArray() });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...