|
|
|
LINQ. Подсчет уникальных значений с группировкой DataTable
|
|||
|---|---|---|---|
|
#18+
Есть некая DataTable Result в которой находятся результаты тестов. Сильно упрощенно это выглядит так: Result ( GroupName string PupilName string Date datetime Mark int ) Данные примерно такие (дата и оценка сейчас не важны, важно что они разные) GroupName PupilName Date Mark1A51A31A41Б21Б51Б52В42В22В5 Мне нужно подсчитать сколько человек в группе тестировались. То есть получить GroupName PupilCount1221 Пишу Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. и получаю GroupName PupilCount1623 Оно и понятно. Все строки разные и подсчиитано количество строк в группе Начинаю разбираться. Оказывается надо не просто Distinct(), a Distinct( Comparer) Пишу свой компарер, что бы сравнение на уникальность шло только по полю GroupName. Distinct( new MyComparer() ) и получаю Ошибка 1 Аргументы-типы для метода "System.Linq.Enumerable.Distinct<TSource>(System.Collections.Generic.IEnumerable<TSource>, System.Collections.Generic.IEqualityComparer<TSource>)" не должны определяться по использованию. Попытайтесь явно определить аргументы-типы. И тут я ничего не понял. Что жк мне надо написать аргументом в Distinct() ? Я выкрутился со вспомогательным запросом, который оставил только две колонки но это как-то неаккуратненько. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. ============ Я знаю как это можно сделать прямым запросом к базе. Но по религиозным соображениям мне надо LINQ к DataTable ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.10.2010, 15:52 |
|
||
|
LINQ. Подсчет уникальных значений с группировкой DataTable
|
|||
|---|---|---|---|
|
#18+
Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.10.2010, 16:50 |
|
||
|
LINQ. Подсчет уникальных значений с группировкой DataTable
|
|||
|---|---|---|---|
|
#18+
... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.10.2010, 16:51 |
|
||
|
LINQ. Подсчет уникальных значений с группировкой DataTable
|
|||
|---|---|---|---|
|
#18+
bured, Спасибо. В понедельник попробую сделать по такому способу ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.10.2010, 17:22 |
|
||
|
LINQ. Подсчет уникальных значений с группировкой DataTable
|
|||
|---|---|---|---|
|
#18+
У тебя же DataTable, сразу не заметил. Тогда так: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.10.2010, 17:26 |
|
||
|
LINQ. Подсчет уникальных значений с группировкой DataTable
|
|||
|---|---|---|---|
|
#18+
Еще раз спасибо, все сработало Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. Однако ошибка у меня была не тут Неправильно написал компарер Не указал, что Код: plaintext Код: plaintext Написал Код: plaintext 1. 2. 3. 4. Код: plaintext 1. 2. 3. 4. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.10.2010, 10:52 |
|
||
|
|

start [/forum/topic.php?fid=17&msg=36902012&tid=1351041]: |
0ms |
get settings: |
8ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
207ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
40ms |
get tp. blocked users: |
1ms |
| others: | 239ms |
| total: | 528ms |

| 0 / 0 |
