Как я могу использовать LINQ для обобщения этих данных - количество отношений, сгруппированных по количеству этих отношений - PullRequest
3 голосов
/ 31 августа 2010

У меня есть простая таблица вроде:

| fkId | Item |
---------------
|    1 |    A |
|    1 |    B |
|    1 |    C |
|    1 |    D |
|    2 |    H |
|    2 |    I |
|    3 |    Y |
|    3 |    Z |

Я хочу запрос LINQ, который сначала подсчитает количество элементов на fkId, а затем сообщит о количестве fkId с заданным количеством элементов.

С примерами данных я хочу знать, что у меня есть 1x ID с 4x элементами и 2x ID с 2x элементами

Итак, что-то вроде:

| ItemCount | fkIdsWithItemCount |
----------------------------------
|         4 |                  1 |
|         2 |                  2 |

Я попадаю на полпути («сколько предметов на fkID») с:

MyTable
    .GroupBy(i => i.FkID)
    .Select(i => i.Count())

1 Ответ

4 голосов
/ 31 августа 2010

Вы попали на полпути с .GroupBy - теперь вам нужно применить еще один .GroupBy, чтобы сделать остальное:

MyTable.GroupBy(i => i.FkID)
       .GroupBy(group => group.Count())
       .Select(group => new { ItemCount = group.Key,
                              FkIdsWithItemCount = group.Count() });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...