#unity/日常积累
Array.ConvertAll 是 .NET 中的一个方法,用于将一个数组中的每个元素转换为另一个类型的数组。它属于 Array 类的一部分,允许你使用转换函数将原始数组中的每个元素映射到一个新数组中。这个方法非常有用,尤其是当你需要将一个类型的数组转换为另一个类型的数组时。
public static U[] ConvertAll<T, U>(T[] array, Converter<T, U> converter);
T 转换为类型 U。
U[] 的数组,包含转换后的元素。假设我们有一个整数数组,我们想将它转换为字符串数组:
using System;
class Program
{
static void Main()
{
// 原始数组
int[] numbers = { 1, 2, 3, 4, 5 };
// 使用 Array.ConvertAll 转换为字符串数组
string[] stringNumbers = Array.ConvertAll(numbers, num => num.ToString());
// 打印结果
foreach (var str in stringNumbers)
{
Console.WriteLine(str);
}
}
}
输出:
1
2
3
4
5
在这个例子中,我们将 int[] numbers 数组中的每个整数转换成了字符串,最终得到了一个字符串数组 string[] stringNumbers。
你可以使用 Array.ConvertAll 进行更复杂的转换,例如将一个对象数组转换为另一个对象类型的数组,或执行更复杂的操作。
例如,将一个表示人的姓名的数组转换为包含问候语的字符串数组:
using System;
class Program
{
static void Main()
{
// 姓名数组
string[] names = { "Alice", "Bob", "Charlie" };
// 使用 Array.ConvertAll 添加问候语
string[] greetings = Array.ConvertAll(names, name => "Hello, " + name + "!");
// 打印问候语
foreach (var greeting in greetings)
{
Console.WriteLine(greeting);
}
}
}
输出:
Hello, Alice!
Hello, Bob!
Hello, Charlie!
Array.ConvertAll 是通过调用提供的 Converter<T, U> 委托(通常是一个 Lambda 表达式或方法引用)来处理原始数组中的每个元素。这使得 Array.ConvertAll 非常灵活和强大,能够快速实现批量转换。
Array.ConvertAll 不会改变原始数组,它会返回一个新的数组。Array.ConvertAll 是一个静态方法,你不需要实例化 Array 类就可以调用它。Array.ConvertAll 用于将一个数组的元素转换为另一种类型的数组。