C# 无法使用普通数组函数

C# 无法使用普通数组函数,c#,.net,arrays,C#,.net,Arrays,为什么我不能在C#中使用普通数组函数,比如: 代码完成时附带了诸如All、Any、Cast或Average之类的建议,但没有从数组中删除字符串的函数。所有类型的数组都会发生这种情况。这是因为我的生成目标设置为.NET 4.5.1吗?您不能从数组中“添加”或“删除”项,也不应该,因为数组被定义为固定大小。您提到的函数(All,Any)之所以存在,是因为Array实现了IEnumerable,因此您可以访问LINQ扩展 虽然它确实实现了IList,但这些方法将抛出NotSupportedExcept

为什么我不能在C#中使用普通数组函数,比如:

代码完成时附带了诸如All、Any、Cast或Average之类的建议,但没有从数组中删除字符串的函数。所有类型的数组都会发生这种情况。这是因为我的生成目标设置为.NET 4.5.1吗?

您不能从数组中“添加”或“删除”项,也不应该,因为数组被定义为固定大小。您提到的函数(
All
Any
)之所以存在,是因为
Array
实现了
IEnumerable
,因此您可以访问LINQ扩展

虽然它确实实现了
IList
,但这些方法将抛出
NotSupportedException
。在您的情况下,要“删除”字符串,只需执行以下操作:

k[index] = String.Empty; //Or null, whichever you prefer
不能从数组中“添加”或“删除”项,也不应该这样做,因为数组定义为固定大小。您提到的函数(
All
Any
)之所以存在,是因为
Array
实现了
IEnumerable
,因此您可以访问LINQ扩展

虽然它确实实现了
IList
,但这些方法将抛出
NotSupportedException
。在您的情况下,要“删除”字符串,只需执行以下操作:

k[index] = String.Empty; //Or null, whichever you prefer

数组的长度在创建时是固定的,不会改变,它表示一个内存块。数组实际上实现了
IList
/
IList
,但只是部分实现-任何试图更改数组的方法只有在强制转换后才可用,并将引发异常。大多数集合都在内部使用数组


如果您需要任意添加和删除,并通过索引进行快速访问,则应使用内部使用调整大小数组的
列表。

数组的长度在创建时是固定的,并且不会更改,它表示内存块。数组实际上实现了
IList
/
IList
,但只是部分实现-任何试图更改数组的方法只有在强制转换后才可用,并将引发异常。大多数集合都在内部使用数组


如果您需要任意添加和删除,并通过索引进行快速访问,您应该使用一个内部使用调整大小数组的
列表。

您可以进一步详细解释吗?我以前可以这样做。您可以进一步详细解释吗?我以前可以这样做。哦。。。我一定是把它和列表对象混在一起了:3Ohh。。。我必须将它与List对象3+1混合在一起,因为我注意到它确实通过方法will throw实现了IList。感谢您纠正我关于+1的错误,因为我注意到它确实实现了IList,通过方法将抛出。谢谢你纠正我的错误