Ответ 1
Как отметил Деннис Трауб, перегрузка Aggregate
используется для исключения, когда исходная последовательность пуста.
Очевидное исправление заключается в использовании другой перегрузки Aggregate
, которая принимает начальное семя (вы хотите string.Empty
), но это приведет к ведущей запятой в результате, от которого вам придется избавиться.
( РЕДАКТИРОВАТЬ: вы можете уклониться от этого с помощью .DefaultIfEmpty(string.Empty)
, за которым следует существующая перегрузка Aggregate
. Это не приведет к ведущей запятой.)
В любом случае использование Aggregate
для объединения строк не является отличной идеей (создает алгоритм Schlemiel the Painter). Вот как я напишу запрос:
allNames = string.Join(",", StockCollection.Select(s => s.Name)
.Where(name => name.StartsWith("A"));
В .NET 3.5 вам понадобится. ToArray()
, чтобы материализовать результаты Where
в массив.