Как выбрать элемент из IEnumerable?

211
08 апреля 2018, 23:18
IEnumerable<Book> books = db.Books// через Entity Framework из бд беру модель

В модели Book есть уникальный Id. Как выбрать элемент из IEnumerable по Id=1?

Answer 1

О, есть варианты:

Book book = db.Books.First(x => x.Id == 1);

или:

Book book = db.Books.FirstOrDefault(x => x.Id == 1);

Разница в том, что первый бросит исключение, если нет книги с Id = 1, второй вернёт null.

Это самые базовые, есть ещё вариант с .Single и .SingleOrDefault

Разницы между .Single и .First для первичного ключа нет, но если бы вы выбирали по какому-нибудь ключу, где возможны дубликаты, то .First вернул бы первый, а и .Single и .SingleOrDefault - дополнительно проверяют, что элемент гарантированно один и падает, если это не так.

И ещё (только для случая, если поле - первичный ключ):

Book book = db.Books.Find(1);
READ ALSO
Как лучше организовать обмен данными UDP?

Как лучше организовать обмен данными UDP?

Разрабатываю клиент-серверное приложение, где клиенты обмениваются данными в реальном времениНемного разобравшись в теме, выбрал наиболее...

209
c# Наложение одной формы на другую. Picturebox

c# Наложение одной формы на другую. Picturebox

Добрый деньНаписал программу, которая делает скрин выделенной части экрана

207
Передача цвета из одной формы в другую

Передача цвета из одной формы в другую

Доброго времени суток!Такая проблема: Создалa Form1(там должен меняться цвет), создалa Form2, кинулa туда кнопку, комбо бокс, что-то вроде выпадающего...

170
Подсчитать кол-во слов в строке C#

Подсчитать кол-во слов в строке C#

Нужно в тексте подсчитать количество определенных слов, например:

344