Можете ли вы каким-то образом отложить List<int>
до List<string>
?
Я знаю, что я мог бы перебирать и .ToString() вещь, но приведение было бы потрясающим.
Я в С# 2.0 (так что LINQ).
Можете ли вы каким-то образом отложить List<int>
до List<string>
?
Я знаю, что я мог бы перебирать и .ToString() вещь, но приведение было бы потрясающим.
Я в С# 2.0 (так что LINQ).
В .NET 2.0 есть метод ConvertAll
, в котором вы можете передать функцию конвертера:
List<int> l1 = new List<int>(new int[] { 1, 2, 3 } );
List<string> l2 = l1.ConvertAll<string>(delegate(int i) { return i.ToString(); });
Обновлено за 2010 год
List<int> l1 = new List<int>(new int[] { 1,2,3 } );
List<string> l2 = l1.ConvertAll<string>(x => x.ToString());
Можно ли С# 2.0 выполнить List<T>.Convert
? Если это так, я думаю, ваше лучшее предположение было бы использовать это с делегатом:
List<int> list = new List<int>();
list.Add(1);
list.Add(2);
list.Add(3);
list.Convert(delegate (int i) { return i.ToString(); });
Что-то в этом роде.
Ответ Upnote Glenn, который, вероятно, является правильным кодом; -)
Вы не сможете напрямую использовать его, поскольку явный или неявный листинг существует из int в строку, это должен быть метод, включающий .ToString(), например: -
foreach (int i in intList) stringList.Add(i.ToString());
Изменить - или, как другие отметили довольно блестяще, используйте intList.ConvertAll(delegate (int i) {return i.ToString();}); однако, тем не менее, вам все равно придется использовать .ToString() и это преобразование, а не литье.
Вы можете использовать:
List<int> items = new List<int>(new int[] { 1,2,3 } );
List<string> s = (from i in items select i.ToString()).ToList();
Вам нужно создать новый список. Базовые представления бит List<int>
и List<string>
полностью несовместимы - на 64-битной платформе, например, отдельные члены не имеют одинакового размера.
Теоретически можно рассматривать a List<string>
как a List<object>
- это приводит вас в захватывающие миры ковариации и контравариантности и в настоящее время не поддерживается С# или VB.NET.
result = listOfInt.Select(i => i.ToString(CultureInfo.InvariantCulture)).ToList()
заменить параметры и listOfInt на параметры