3.0 KiB
3.0 KiB
#unity/日常积累
Array.ConvertAll
是 .NET 中的一个方法,用于将一个数组中的每个元素转换为另一个类型的数组。它属于 Array
类的一部分,允许你使用转换函数将原始数组中的每个元素映射到一个新数组中。这个方法非常有用,尤其是当你需要将一个类型的数组转换为另一个类型的数组时。
方法签名:
public static U[] ConvertAll<T, U>(T[] array, Converter<T, U> converter);
- 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
用于将一个数组的元素转换为另一种类型的数组。- 它接收一个数组和一个转换函数作为参数,并返回一个新的数组。
- 这个方法在处理大量数据时非常有用,特别是在需要批量转换或处理数据时。