Deutsch
Germany.ruФорумы → Архив Досок→ Программирование

​Снова LINQ

204  
Murr патриот21.07.17 12:23
Murr
21.07.17 12:23 

Снова LINQ


Есть сильно типизированное представление таблички.

Исходные данные протестировал - вроде нормально.

Но где-то в процессе обработки происходит дуплицирование некоторых строк. Зависимости - не нашел.


Подумал что рыть код занятие бестолковое и начал юзать ЛИНК в тестах.

Целевая задача - получить список дубликатов БарКоде:



TItems.Table items;
var dup = from rw1 in items.Cast<TItems.Row>()
.GroupBy(x => x.BarCode)
//.Where(y => y.Count() > 1)
//.Select(n => new { Key = n.Key, Count = n.Count() })
//.ToList()
;




Вроде все не сложно и должно работать.

Однако - даже не компилируется. Ошибка:

Severity Code Description Project File Line Suppression State

Error CS0742 A query body must end with a select clause or a group clause


Забыл либу? Но вроде усинг написан без проблем... ака нужное есть...


Как всегда - Где копать?

#1 
Murr патриот21.07.17 12:37
Murr
NEW 21.07.17 12:37 
в ответ Murr 21.07.17 12:23

Osoznal.

#2 
dymanoid знакомое лицо22.07.17 01:21
dymanoid
NEW 22.07.17 01:21 
в ответ Murr 21.07.17 12:37

Умеющий читать сообщение об ошибке да прозреет!

#3 
Murr патриот22.07.17 12:16
Murr
NEW 22.07.17 12:16 
в ответ dymanoid 22.07.17 01:21

Для не вполне освоивших процесс чтения - там в конце аккурат groupby()...

Проблема, для тех кто не понял, была в смешивании двух способов записи...

#4 
dymanoid знакомое лицо22.07.17 15:41
dymanoid
NEW 22.07.17 15:41 
в ответ Murr 22.07.17 12:16

Повторяю: умеющий читать да прозреет! В сообщении написано: group clause. Даже если читать не умеем, то первая ссылка в гугле: https://docs.microsoft.com/en-us/dotnet/csharp/language-re...

Где здесь упоминание про метод-расширение Enumerable.GroupBy?

#5 
Murr патриот22.07.17 18:13
Murr
NEW 22.07.17 18:13 
в ответ dymanoid 22.07.17 15:41

какая разница - одно или другое? Главное - не смешивать. Смешивание билли еще не осилил...

Ну а мне было непонятно что Я что-то смешал - пользуюсь относительно редко, отсюда и пост...

Вроде как успел разобраться... хотя... на эти грабли еще не раз наступлю.

#6 
NightWatch коренной житель22.07.17 18:27
NightWatch
NEW 22.07.17 18:27 
в ответ Murr 22.07.17 18:13
Главное - не смешивать. Смешивание билли еще не осилил...
var dup = (from rw1 in items.Cast<TItems.Row>() select rw1)
    .GroupBy(x => x.BarCode);

Да, во всем виноват Билли.

#7 
Murr патриот22.07.17 19:45
Murr
NEW 22.07.17 19:45 
в ответ NightWatch 22.07.17 18:27

Не путай. Я и сам запутаюсь.

Хорошо что все еще могу распутаться...

#8