Могу ли я прочитать массив в одной строке кода? - PullRequest
2 голосов
/ 09 сентября 2010

Предположим, у меня есть массив int [] arr = {1,2,3,4}

Я хочу преобразовать его в строку. В результате я хочу, чтобы это было похоже на эту строку a = "1,2,3,4";

так я могу сделать что-то "string a = arr ....", чтобы сделать это, вместо того, чтобы писать цикл for ??

Спасибо

Ответы [ 4 ]

8 голосов
/ 09 сентября 2010

Начиная с .NET 4, вы можете просто сделать:

var result = string.Join( ",", arr );

В более ранних версиях,

var result = string.Join( ",", arr.Select( a => a.ToString() ).ToArray() );
2 голосов
/ 09 сентября 2010

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

int[] arr = new [] { 4, 5, 6, 7 };
string joined = String.Join(",", arr);

Подробнее см. http://msdn.microsoft.com/en-us/library/57a79xd0.aspx.

1 голос
/ 09 сентября 2010

Если вы не можете использовать .net 4 (пока не могу, так как наши клиенты его не развертывают), вы можете использовать метод расширения.Это будет работать, а затем работать для всех IEnumerable<T>'s с соответствующим образом реализованными переопределениями .ToString ().Вы также можете выбрать, какой тип разделителя вы хотите.

Как только у вас есть ниже, вы можете просто сделать string s = myenumerable.Seperated(",");

public static class EnumerableExtender
    {
        public static string Separated<T>(this IEnumerable<T> l, string separator)
        {
            var sb = new StringBuilder();
            var first = true;
            foreach (var o in l)
            {
                if (first) first = false; else sb.Append(separator);
                sb.Append(o.ToString());
            }
            return sb.ToString();
        }
    } 
1 голос
/ 09 сентября 2010
string result = string.Join(", ", arr.Select(item => item.ToString()).ToArray());
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...