#c# #list
#c# #Список
Вопрос:
Я использую словарь, и ключом будет имя свойства, а значением будет запрос LINQ ниже:
Model.Listexample.Select(a => a.property)
Как я могу проверить, есть ли какие-либо элементы в списке, не записывая оператор if? Мы можем использовать любой другой оператор LINQ, где он проверяет, есть ли какие-либо элементы в списке перед использованием Select()
.
Я пытался (Model.Listexample.Any()).Select
, но это не сработало.
Комментарии:
1. И как вы думаете,
Any()
как это написано? Что вы имеете противif()
утверждений?2. Привет, Tanveer — Я думаю, что нехорошо использовать оператор if внутри объекта dictionary. Как я упоминал выше, ключ — это имя свойства, а значение — оператор Select LINQ, я хочу использовать Any () и Select () в одном и том же операторе, а не использовать оператор if снова. Возможно ли это через LINQ?
3. @Stackoverflowuser — Не могли бы вы, пожалуйста, уточнить свой вопрос в соответствии с комментариями в ответах?
Ответ №1:
Не проверяйте, List
пусто ли, Select
это сделает за вас. Самое большее, что вы можете проверить на null:
var newList = Model.Listexample?.Select(a => a.property)
Комментарии:
1. Как указано, OP не нужно проверять список на нулевость, но на пустоту
2. @vc74 — Вопрос OP не имеет смысла, если принимать его за чистую монету — на мой взгляд, этот ответ является лучшей интерпретацией реальной потребности.
3. @Enigmativity ИМО, это не так, OP прокомментировал, что список не равен нулю. Он / она просто хочет иметь другое поведение в случае, если список пуст. Вопрос в том … какой?
4. @Stackoverflowuser Смысл, который я пытаюсь подчеркнуть в своем ответе, заключается в том, что
Select
оператор проверяет наличие пустого и возвращает пустой список. Есть ли что-то еще, что вы хотите сделать в этом случае?5. @vc74 для меня это звучит как проблема XY
Ответ №2:
Вы можете проверить, используется ли приведенный ниже синтаксис в linq:
Model.Listexample?.Select(a => a.property)
Ответ №3:
Model.Listexample.Any(a => a.property) ? Model.Listexample.Select(a => a.property) : null;
Комментарии:
1. Привет, meJustAndrew и Bilal — я хочу проверить, есть ли в списке какие-либо элементы, в частности, это не должен быть пустой список, подобный [] . проверка null уже проверялась ранее в коде.
2. @Stackoverflowuser Какое поведение (значение по умолчанию, исключение …?) вы хотите, когда список пуст?
3. @Stackoverflowuser Кроме того, если вы хотите прокомментировать ответы, пожалуйста, делайте это в конкретных ответах, а не в других ответах, не связанных с вашим комментарием.
4. Это правильно? Модель. Пример списка. Любой (a => a.property)? Модель. Пример списка. Select(a => a.property) : null;
5. @Stackoverflowuser Это может быть правильным, если
a.property
это логическое значение, и вы хотите проверить, верно ли это для любого элемента в списке, но если вы просто хотите проверить, есть ли элементы в списке:Any()
подойдет (проверьте мой ответ)