Это - вероятно, что-то глупое, которое я пропустил, но я пытаюсь связать список целых чисел вместо того, чтобы суммировать их с:
integerArray.Aggregate((accumulator, piece) => accumulator+"," + piece)
Компилятор жаловался на ошибку аргумента. Существует ли гладкий способ сделать это, не имея необходимость проходить цикл?
Какая версия .NET? В 4.0 вы можете использовать string.Join (",", integerArray)
. В версии 3.5 я бы хотел просто использовать string.Join (",", Array.ConvertAll (integerArray, i => i.ToString ()));
(при условии, что это равно массив). В противном случае либо сделайте массивом, либо используйте StringBuilder
.
Вы получаете ошибку, потому что вы не использовали переопределение Aggregate
, которое позволяет вам указать начальное число. Если вы не укажете начальное число, оно будет использовать тип коллекции.
integerArray.Aggregate("", (accumulator, piece) => accumulator + "," + piece);
Вероятно, вы захотите использовать String.Join .
string.Join(",", integerArray.Select(i => i.ToString()).ToArray());
Если вы используете .Net 4.0, вам не нужно беспокоиться о повторении массива. и можно просто сделать
string.Join(",", integerArray);
Просто чтобы добавить еще одну альтернативу @Marc's
var list = string.Join( ",", integerArray.Select( i => i.ToString() ).ToArray() );