Ответ 1
Используйте LINQ:
string[] the_array = the_list.Select(i => i.ToString()).ToArray();
Мне нужен простой способ преобразования массива List<int>
в string
.
У меня есть:
var the_list = new List<int>();
the_list.Add(1);
the_list.Add(2);
the_list.Add(3);
string[] the_array = new string[the_list.Count];
for(var i = 0 ; i < the_array.Count; ++i)
the_array[i] = the_list[i].ToString();
... который выглядит очень уродливым для меня.
Есть ли более простой способ?
Примечание. Я ищу более простой способ - не обязательно более быстрый способ.
Используйте LINQ:
string[] the_array = the_list.Select(i => i.ToString()).ToArray();
Извините, у меня нет .NET, установленного на этой машине, поэтому полностью непроверено:
var theList = new List<int>() { 1, 2, 3 };
var theArray = theList.Select(e => e.ToString()).ToArray(); // Lambda Form
var theArray = (from e in theList select e.ToString()).ToArray(); // Query Form
Я знаю, что у вас есть хороший ответ, но вам не нужны LINQ или Select. Вы можете сделать это с помощью ConvertAll и анонимного метода. Вот так:
var list = new List<int>();
....
var array = list.ConvertAll( x => x.ToString() ).ToArray();
Подобная идея, но я думаю, что это не linq. в случае, если это имеет значение.
Список имеет метод ToArray(). Это поможет вам печатать, но, вероятно, не будет более эффективным.