Имеем два класса:
public class Book
{
public int Id { get; set; }
public BookCategory BookCategory { get; set; }
}
public class BookCategory
{
public int Id { get; set; }
public string Name { get; set; }
}
помогите заполнить список книг категориями
var books = new List()
{
new Book { Id = 1, BookCategory = new BookCategory { Id = 1 } },
new Book { Id = 2, BookCategory = new BookCategory { Id = 1 } },
new Book { Id = 3, BookCategory = new BookCategory { Id = 2 } },
new Book { Id = 4, BookCategory = new BookCategory { Id = 2 } }
};
var categories = new List
{
new BookCategory { Id = 1, Name = "Первая категория" },
new BookCategory { Id = 2, Name = "Вторая категория" }
};
List booksWithCategories = //linq;
Update:
я Хочу получить список объектов Book с заполненным BookCategory.Name
Ответ
Вариант с созданием новых книг:
List booksWithCategories = books.Select(b => new Book()
{
BookCategory = categories.SingleOrDefault(c => c.Id == b.BookCategory.Id),
Id = b.Id
}).ToList();
Вариант с заполнением старых книг:
books.ForEach(b => b.BookCategory = categories.SingleOrDefault(c => c.Id == b.BookCategory.Id));
List booksWithCategories = books.ToList();
Комментариев нет:
Отправить комментарий