Вы можете бросить , 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());
x => x.ToString()
скомпилирована для того же типа IL, что иdelegate(int x) { return x.ToString(); }
в этом случае, важно иметь компилятор C # (версия C #), который знает, что это=>
такое. Платформа и среда выполнения (версия .NET) не требуют для этого специальных функций, поэтому .NET 2.0 здесь подойдет.<string>
и это все еще работает. Делая это простоl1.ConvertAll(x => x.ToString());
Может ли C # 2.0
List<T>.Convert
? Если это так, я думаю, что лучше всего будет использовать это с делегатом:Что-то в этом роде.
Проголосуйте за ответ Гленна, который, вероятно, является правильным кодом ;-)
источник
Ты можешь использовать:
источник
Вы не могли бы непосредственно брось , как не существует никаких явных или неявных литая из междунар в строку, она будет иметь , чтобы быть методом , включающим .ToString () , такие как: -
Изменить - или, как другие блестяще указывали, используйте intList.ConvertAll (delegate (int i) {return i.ToString ();});, однако очевидно, что вам все равно придется использовать .ToString (), и это преобразование, а не в ролях.
источник
int
был явно или неявно преобразован вstring
, это не означает, что онList<int>
имеет неявное или явное преобразование вList<string>
.Вы должны составить новый список. Базовые битовые представления
List<int>
иList<string>
полностью несовместимы - например, на 64-битной платформе отдельные члены даже не одного размера.Теоретически можно рассматривать a
List<string>
как aList<object>
- это вводит вас в захватывающие миры ковариации и контравариантности и в настоящее время не поддерживается C # или VB.NET.источник
result = listOfInt.Select(i => i.ToString(CultureInfo.InvariantCulture)).ToList()
замените параметры result и listOfInt на свои параметры
источник