#c# #group-by
#c# #группировка по
Вопрос:
у меня есть некоторые проблемы с моим кодом на c # везде в примерах, они делают это как я, но почему-то я получу некоторые ошибки
Компилятор говорит в g.Datum, что он не знает Datum
и в «return query» он говорит — cannot convert
, есть явное преобразование
var query = (from p in dataContext.Untersuchungen
orderby p.Datum
group p by p.Datum into g
let number = (from n in dataContext.Untersuchungen
where n.Datum == g.Datum
select n).Count()
select new StatsistikObjekt() { Date1 = g.Datum, number1 = number });
return query;
надеюсь, вы сможете мне помочь =)
Комментарии:
1. Очень интересно; я никогда не знал, что вы даже можете использовать
let
в запросе linq. Почти выглядело как смесь C # и F # = D2. я полагаю, что g.Datum должно быть g.Key.
Ответ №1:
Типом переменной диапазона g
является group, которая на самом деле не имеет Datum
значения.
Вы можете легко исправить этот момент, учитывая вашу группировку (которая использует Datum
в качестве ключа), а также упростить свой запрос, просто подсчитав размер группы:
var query = (from p in dataContext.Untersuchungen
orderby p.Datum
group p by p.Datum into g
select new StatsistikObjekt() { Date1 = g.Key,
number1 = g.Count() });
Что касается возвращаемого значения — мы действительно не можем вам помочь в этом вопросе, поскольку мы не знаем возвращаемый тип, который вы пытаетесь вернуть.
Комментарии:
1. Я на полпути к написанию своего ответа и понимаю, что меня обогнал великий Джон Скит. Однажды, добрый сэр, однажды.
2. @Tim: Просто напишите свой собственный ответ и сравните его с супер-потрясающим супер-быстрым ответом Джона постфактум. Практика делает совершенным. Вы не станете лучше в оцепенении. Кроме того, кому-то может понравиться ваш ответ.
3. @Tim Я называю это получением «тарелочек». Продолжайте попытки. Вам может повезти, и в итоге получится что-то вроде этого i.imgur.com/GLcaM.png . Текущий результат; я: 1, Количество тарелочек: 2000
Ответ №2:
Попробуйте
g.Key
вместо g.Datum