Задать вопрос
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);


Но получаю только имена книг. Как исправить?
  • Вопрос задан
  • 135 просмотров
Подписаться 1 Простой Комментировать
Помогут разобраться в теме Все курсы
  • OTUS
    C# Developer. Professional
    6 месяцев
    Далее
  • Ulearn.me
    Основы программирования на примере C#. Часть 1
    1 неделя
    Далее
  • Software-testing.ru
    Программирование на C# для тестировщиков
    10 недель
    Далее
Решения вопроса 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();
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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