C#使用array.WhereinArraylist

c#

我在 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();

回答

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


回答

如果您真的想使用ArrayList(真的?为什么?),您可以使用OfType<int>()将 更改IEnumerableIEnumerable<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()会默默地忽略无法强制转换的对象,intCast()会以InvalidCastException.


以上是C#使用array.WhereinArraylist的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>