mak_ufo
@mak_ufo

Как выбрать данные правильно с LINQ?

Здравствуйте. Есть такая структура:
class Book
{
   public string Name { get; set; }
   public string Author { get; set; }
}

class User
{
   public string Name { get; set; }
   public int Age { get; set; }
   public Book[] Books;
}


Пытаюсь выбрать имена всех людей, у которых есть хотя бы одна книга Достоевского вот так:
var us = Users.SelectMany(u => u.Books)
       .Where(b => b.Author == "Достоевский")
       .Distinct()
       .Select(b => b.Name);


Но получаю только имена книг. Как исправить?
  • Вопрос задан
  • 134 просмотра
Решения вопроса 2
AlexanderYudakov
@AlexanderYudakov
C#, 1С, Android, TypeScript
Users
    .Where(u => u.Books
    .Any(b => b.Author == "Достоевский"))
    .Select(u => u.Name)
Ответ написан
Комментировать
@BashkaMen
C# программист
var names = Users.Where(s=> s.Books.Any(b=> b.Author == "Достоевский")).Select(s=> s.Name).ToList();
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы