📜  c# 将数组对象转换为 int[] (1)

📅  最后修改于: 2023-12-03 14:59:42.327000             🧑  作者: Mango

C# 将数组对象转换为 int[]

在 C# 中,数组对象可以包含不同类型的元素。有时候我们想把数组对象中的所有元素转换为相同类型,比如转换为整数类型(int)。本文将介绍如何在 C# 中将数组对象转换为 int[] 数组。

方法一:使用 Linq 的 Select 方法

我们可以使用 Linq 中的 Select 方法,对每个元素执行相应的操作并返回一个新的序列。

object[] objArray = new object[] { 1, "2", 3.0, 4 };
int[] intArray = objArray.Select(x => (int)Convert.ChangeType(x, typeof(int))).ToArray();

Select 方法接受一个 lambda 表达式作为参数,并返回一个新序列。在上面的例子中,我们使用 Convert.ChangeType 方法将每个元素转换为整数类型,并使用 (int) 进行强制类型转换。

由于我们使用了 ToArray 方法,所以返回的是一个 int[] 数组。

方法二:使用 Array.ConvertAll 方法

另一种将对象数组转换为 int[] 的方法是使用 Array.ConvertAll 方法。

object[] objArray = new object[] { 1, "2", 3.0, 4 };
int[] intArray = Array.ConvertAll(objArray, x => (int)Convert.ChangeType(x, typeof(int)));

Array.ConvertAll 方法接受两个参数,第一个参数是要转换的数组,第二个参数是一个 lambda 表达式,指定如何将原数组中的每个元素转换为目标类型。在上面的例子中,我们使用 (int) 进行强制类型转换。

Select 方法不同,Array.ConvertAll 方法返回一个 int[] 数组,因此不必使用 ToArray 方法。

总结

以上就是将数组对象转换为 int[] 的两种方法。选择哪种方法取决于您的需求和个人喜好。Select 方法更灵活,可以对每个元素进行更复杂的转换操作。而 Array.ConvertAll 方法则更简洁和直接,适用于简单的数组转换操作。

总之,无论哪种方法都可以容易地将对象数组转换为 int[] 数组。