合并3个列表

时间:2012-07-03 19:37:29

标签: c#

我有3个列表,其中包含Book类型的对象。

每本书都有一个名称和该书的总金额。

有没有办法将所有3个列表合并为一个新列表,如果在不同列表中有相同名称的书籍,它们的总数将一起添加?

编辑:尝试使用union和concat,但他们不会将总数加在一起

List<Book> completelist = booklist[0].Concat(booklist[1])
                                     .Concat(booklist[2]).ToList();

干杯

1 个答案:

答案 0 :(得分:4)

var merged = list1.Concat(list2).Concat(list3)
    .GroupBy(book => book.Name)
    .Select(g => new Book
    {
        Name = g.Key,
        Total = g.Sum(book => book.Total),
    })
    .ToList();