Как добавить к списку с помощью агрегатной функции Linq C#

Перейти к типу бега services.msc. Проверьте, запущены ли службы MySQL или нет. Если нет, запустите его вручную.

9
задан Slaggg 13 June 2009 в 16:53
поделиться

4 ответа

Я думаю, это вызов Select в сочетании с ToList () может быть тем, что вам здесь нужно. Например:

context.Items
  .Select(item => new DestinationType(item.A, item.B, item.C))
  .ToList();
10
ответ дан 4 December 2019 в 06:11
поделиться

Предполагая, что это LINQ to Objects, попробуйте ...

var newSet = set.Aggregate(new List<DestinationType>(),
                                    (list, item) =>
                                    {
                                        list.Add(new DestinationType(item.A, item.B, item.C));
                                        return list;
                                    });
25
ответ дан 4 December 2019 в 06:11
поделиться

Здесь вы можете просто применить select .

var newSet = set.Select(item => new DestinationType(...)).ToList();

Совокупный (обычно известный как свертка или уменьшение ) используется для объединения элементов вместе, где select применяет функцию к каждому элементу.

Пример:

Пусть f будет унарной функцией, тогда [a, b, c]. select (f) равно [f (a), f (b), f (c)] .

] Пусть f будет двоичной функцией, тогда [a, b, c]. aggregate (f, init) равен f (a, f (b, f (c, init))) .

Способ, который вы выбрали в своем примере, необычен в C #, но часто используется в функциональном программировании, где (связанные) списки преобразуются в новые списки вместо изменения существующих collection:

reversed = fold (\list element -> element:list) [] [1..10]

Если вы действительно хотите выполнить это вычисление с агрегатом , используйте решение Дастина или лучше реализуйте тип на основе связанного списка для неизменяемых коллекций (вы даже можете дать этому типу оператор + ).

4
ответ дан 4 December 2019 в 06:11
поделиться
list.AddRange(context.Items.Select(item => 
  new DestinationType(item.A, item.B, item.C));

Я понимаю, что здесь не используется функция агрегирования, но вам, вероятно, следует найти лучший пример для изучения агрегата.

3
ответ дан 4 December 2019 в 06:11
поделиться
Другие вопросы по тегам:

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