#c# #linq
#c# #linq
Вопрос:
у меня есть выпадающий список для year, проблема в том, что я хочу проверить последний год в списке и добавить 1 . поэтому, если последний год в списке 2011, я вручную добавлю 1, чтобы он также отображал 2012 … вот мой код для вашей справки..
var b = (from a in sampleworker.getyear()
orderby a.Year
select new
{
a.Year
}
).Distinct();
b = int.Parse( (b.First()).ToString() ) 1;
drp_year.DataSource = b;
drp_year.DataBind();
Заранее спасибо, ребята!
Ответ №1:
Я предполагаю, что вы получаете ошибку в строке b =, потому что функция Distinct() собирается вернуть объект IEnumerable . Обратите внимание, что вы пытаетесь присвоить целое число b в этой строке, но в той же самой строке вы вызываете b.First(), что, очевидно, невозможно сделать с целым числом.
Похоже, что вы действительно хотите
b.Add(b.First() 1);
Однако это тоже не сработает. Вам пришлось бы сделать:
var yearList = b.ToList();
yearList.Add(b.First() 1);
Затем вы можете настроить свой источник данных на это. Кроме того, какой тип данных — Year? Очевидно, что это не строка, поскольку вам приходится использовать для нее метод toString(). И я бы подумал, что это не целое число, поскольку вы используете для него int.Parse(). Что наводит меня на мысль, что это, вероятно, DateTime , и если да, то почему бы не использовать методы, которые уже присутствуют в объекте DateTime, для манипулирования датой вместо преобразования между типами?
Редактировать: я скорректировал приведенные выше блоки кода после того, как обнаружил, что Year на самом деле является int. Кроме того, «выбрать новый { a.Year }» в его исходном коде должно быть просто «выбрать a.Year». Смотрите комментарии ниже для получения дополнительной информации…
Комментарии:
1. @StriplingWarrior Разве это не то, что я объяснял с первого по второй блоки кода?
2. @BrandonMoore Привет, yearList.Add(int.Parse((b.First()). toString()) 1); есть некоторые ошибки.. 1) Ошибка 1. Наилучший перегруженный метод подходит для ‘System. Коллекции. Generic.List<Анонимный тип #1>.Add(Анонимный тип #’ имеет некоторые недопустимые аргументы 2) Ошибка 2 Аргумент ‘1’: не удается преобразовать из ‘int’ в ‘Анонимный тип # 1’ Также year является int..
3. @anonymous1110 Вот почему я спросил, какой тип данных ‘Year’. Без этой информации я никак не мог бы точно сказать вам, что вам нужно передать в метод yearList.Add().
4. @BrandonMoore привет, год — это целое
5. @anonymous1110 Ты уверен в этом? Ваша ошибка говорит о невозможности преобразования из и int. yearList будет списком любого типа Year , поэтому, если это int, вы не должны получать эту ошибку. В строке с надписью «orderby a.Year» наведите курсор мыши на «Year» и скажите мне, указано ли там, что это значение int или что-то еще.