不同数组声明的智能感知不同

本文关键字:智能 感知 声明 数组 | 更新日期: 2023-09-27 17:59:45

我用以下两种方式声明一个整数数组:

Array numbers = Array.CreateInstance(typeof(int), 10);
int[] numbers1 = new int[6];

我推测变量CCD_ 1和CCD_。但我对这两个人的感觉是不同的。我有更多的numbers1选项。

为什么会这样?

不同数组声明的智能感知不同

不同之处在于numbers1实现了IEnumerable<int>IEnumerablenumbers仅实现IEnumerable

(基本上,numbers知道它是一个序列,但不知道它是什么类型的序列;numbers0知道它是ints的序列。)

由于我在程序开始时有一行using System.Linq,所以我在numbers1上使用了很多LINQ扩展方法,但在numbers上只使用了一些。

(LINQ定义了查询数组和其他序列的方法。由于只有当您知道序列中的对象类型时,才能对序列进行有趣的查询,因此许多方法仅适用于IEnumerable<something>序列,而不是普通的IEnumerable序列。)

如果我去掉using System.Linq,我得到的选项与它们完全相同。

可能是您自己已经为IEnumerable<int>定义了很多扩展方法,但它可能是LINQ。