2009-05-14 3 views
4

Я чувствую себя глупо, чтобы спросить, но должен быть один лайнер, который выполняет эквивалент или почти эквивалент кода ниже в C# ... так что вы можете сказать мне, что это является?C# один вкладыш для .ToString() по всему массиву

public static string[] ToStringArray(int[] i) 
    { 
     if (i==null) return null; 
     string[] result = new string[i.Length]; 
     for (int n= 0; n< result.Length; n++) 
      result[n] = i[n].ToString(); 
     return result; 
    } 

ответ

10

Как насчет метода расширения?

public static string[] ToStringArray<T>(this IEnumerable<T> items) 
{ 
    return items.Select(i => i.ToString()).ToArray(); 
} 
+0

метод расширения будет работать, но почему бы не использовать рамки .Net функции ".join" для этого ? – RSolberg

+0

Посмотрите мои комментарии к своему ответу. String.Join превращает массив строк в одну строку. Первоначальный вопрос вызвал способ превратить массив int в массив строк. –

+0

Я пропустил всю «int» часть этого :) – RSolberg

9

Использование LINQ:

int[] ints = { 1, 2, 3 }; 

string[] strings = ints.Select(i => i.ToString()).ToArray(); 
2

Использование LINQ:

(from x in i select x.ToString()).ToArray() 
1
 

int[] x = new int[] {1,2,3}; 
string[] y = Array.ConvertAll(x, intArg => intArg.ToString()); 
 
Смежные вопросы