Метод ConvertAll
Метод ConvertAll класса List<T>
принимает Converter<T,TOutput> или
лямбду и возвращает новый список. Исходный
список не меняется.
Синтаксис
List<TOutput> res = list.ConvertAll(converter);
Пример
Давайте удвоим каждое число:
using System;
using System.Collections.Generic;
class Program
{
static void Main()
{
List<int> nums = new List<int> {1, 2, 3, 4, 5};
List<int> res = nums.ConvertAll(x => x * 2);
Console.WriteLine(string.Join(" ", res));
}
}
Результат выполнения кода:
2 4 6 8 10
Пример
Давайте преобразуем числа в строки:
using System;
using System.Collections.Generic;
class Program
{
static void Main()
{
List<int> nums = new List<int> {1, 2, 3, 4, 5};
List<string> res = nums.ConvertAll(x => x.ToString());
Console.WriteLine(res[2]);
}
}
Результат выполнения кода:
"3"
Пример
Давайте проверим, что исходный список не изменился:
using System;
using System.Collections.Generic;
class Program
{
static void Main()
{
List<int> nums = new List<int> {1, 2, 3, 4, 5};
List<int> res = nums.ConvertAll(x => x + 1);
Console.WriteLine(nums[0]);
Console.WriteLine(res[0]);
}
}
Результат выполнения кода:
1
2
Пример
Давайте возведём в квадрат:
using System;
using System.Collections.Generic;
class Program
{
static void Main()
{
List<int> nums = new List<int> {1, 2, 3, 4, 5};
List<int> res = nums.ConvertAll(x => x * x);
Console.WriteLine(string.Join(" ", res));
}
}
Результат выполнения кода:
1 4 9 16 25