C#使用数组.Arraylist中的何处



我在C#中有一组带有数组的代码,我需要数组拆分成更小的数组。当我用声明数组时没有错误

List<int> array = new List<int>();

然而,代码执行会在数组中提示错误。其中当我声明为:时

var array = new ArrayList();

有没有什么方法可以使用数组。数组列表中的在哪里?以下是我的代码:

List<int> array = new List<int>();
for (int i = 0; i <=20; i++){
if (unitIsPresent) 
{
array.add(1);
} 
else
{
array.add(0)
}
}
devidedArray = array.Where((e, i) => i >= 5 && i < 10).ToArray();

数组列表是一个非泛型集合类型,因此最好将项存储在不考虑项类型的数组中。因此,您不能使用用于泛型集合(如Where(的Linq方法。我的建议是使用List,并使用提供的Linq方法将其转换为Array。这种方法非常快。

如果您真的想使用ArrayList(真的?为什么?(,可以使用OfType<int>()IEnumerable更改为IEnumerable<int>

var devidedArray = array.OfType<int>().Where((e, i) => i >= 5 && i < 10).ToArray();

或者,您可以使用Cast<int>():

var devidedArray = array.Cast<int>().Where((e, i) => i >= 5 && i < 10).ToArray();

两者的区别在于,OfType()将静默地忽略无法强制转换为int的对象,而Cast()将因InvalidCastException而失败。

https://learn.microsoft.com/en-us/dotnet/api/system.collections.arraylist?view=net-5.0

看看微软文档。

我们不建议您使用ArrayList类进行新的开发。相反,我们建议您使用泛型List类。。。

只是用CCD_ 10来代替CCD_。

最新更新