Как проверить, пуст ли список перед использованием Select (LINQ)?

#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() подойдет (проверьте мой ответ)