Подтвердить что ты не робот

LINQ: Как объединить список целых чисел в строку с разделителями-запятыми?

Возможно, что-то глупое я пропустил, но я пытаюсь объединить список целых чисел, а не суммировать их с помощью:

integerArray.Aggregate((accumulator, piece) => accumulator+"," + piece)

Компилятор жаловался на ошибку аргумента. Есть ли способ сделать это без необходимости проходить цикл?

4b9b3361

Ответ 1

Какая версия .NET? В 4.0 вы можете использовать string.Join(",",integerArray). В 3.5 у меня возникло бы желание использовать string.Join(",",Array.ConvertAll(integerArray,i=>i.ToString())); (предполагая, что это массив). В противном случае сделайте его массивом или используйте StringBuilder.

Ответ 2

Ошибка, которую вы получаете, заключается в том, что вы не использовали переопределение Aggregate, которое позволяет указать семя. Если вы не укажете семя, он использует тип коллекции.

integerArray.Aggregate("", (accumulator, piece) => accumulator + "," + piece);

Ответ 3

Возможно, вы захотите использовать String.Join.

string.Join(",", integerArray.Select(i => i.ToString()).ToArray());

Если вы используете .Net 4.0, вам не нужно беспокоиться о необходимости объединения массива. и может просто сделать

 string.Join(",", integerArray);

Ответ 4

Просто добавьте еще одну альтернативу

@Marc <
var list = string.Join( ",", integerArray.Select( i => i.ToString() ).ToArray() );