9

我正在使用该函数Array.Clear()清空数组,但它会产生错误。这是我使用的代码:

private int[] activeFielderNumber = new int[10];
private string[] activeFielderAction = new string[10];  
....
...
....
Array.Clear(activeFielderNumber, 0, activeFielderNumber.Length);
Array.Clear(activeFielderAction, "", activeFielderAction.Length);

错误是:

error CS0103: The name `Array' does not exist in the current context

我怎么解决这个问题?

4

8 回答 8

12

你用过吗

using System;

还有一点要纠正:

Array.Clear(activeFielderAction, "", activeFielderAction.Length);

它应该是

Array.Clear(activeFielderAction, 0, activeFielderAction.Length);

最后两个参数是要清除的索引范围。

于 2012-12-07T05:29:40.243 回答
7

尝试这个

Array.Clear(yourArray, 0, yourArray.Length);
于 2014-07-10T07:38:47.877 回答
4

我正在使用 Array.Clear() 函数来清空数组。但它抛出错误

不,我不是。Clear 函数没有抛出错误,COMPILER 是。

错误 CS0103:当前上下文中不存在名称“数组”

当我们寻找 CS0103 时,Google 会这样说:

MSDN 上的编译器错误 CS0103 (C#)

试图使用类、命名空间或范围中不存在的名称。检查名称的拼写并检查您的 using 语句和程序集引用,以确保您尝试使用的名称可用。一个常见的错误是在循环或 try 块中声明变量,然后尝试从封闭代码块或另一个代码块访问它,如下例所示。

翻译为:在上下文中找不到数组。您是否缺少“使用”语句?

于 2012-12-07T05:29:51.353 回答
2

以下代码有效:

using System;
using System.Collections.Generic;
using System.Text;

namespace ConsoleApplication3
{
    class Program
    {
        static void Main(string[] args)
        {
            int[] activeFielderNumber = new int[10];
string[] activeFielderAction = new string[10];  

Array.Clear(activeFielderNumber, 0, activeFielderNumber.Length);
Array.Clear(activeFielderAction, 0, activeFielderAction.Length);
        }
    }
}
于 2012-12-07T05:27:57.433 回答
1

不幸的是,我没有足够的分数来发表评论,所以必须在这里提供一个“答案”......对于那里的任何“速度迷”,有很多方法可以清除数组(不仅仅是Array.Clear如此处所示,但通常Array.Clear是最简单和最快的。

以下是经过测试的 3 种方法来清除数组(直接从站点),其中“o1”是对象数组:

for (int x = 0; x < MAX; x++)
{
    o1[x] = null;
}

Array.Clear(o1, 0, o1.Length);

Parallel.For(0, MAX, x =>
{   //arrays are thread safe if only one thread is writing to an index
    o1[x] = null;
});

我认为阅读起来很有趣,因为我从未考虑过尝试除Array.Clear之外的另一种方式(尤其是使用并行循环)。

于 2014-07-10T07:33:20.713 回答
1

Array.Clear()方法仅将数组重置为其默认状态。

根据声明

Array.Clear(activeFielderAction, "", activeFielderAction.Length);我们可能会得到一个错误。

实际的陈述应该是

Array.Clear(activeFielderAction, 0, activeFielderAction.Length);

还要检查你是否是importing Using.System;命名空间。

试试下面的代码。

int[] activeFielderNumber = new int[10];
activeFielderNumber[1] = 10;
activeFielderNumber[2] = 20;

string[] activeFielderAction = new string[10];
Array.Clear(activeFielderNumber, 0, activeFielderNumber.Length);
Array.Clear(activeFielderAction, 0, activeFielderAction.Length);
于 2012-12-07T05:33:12.577 回答
0

线

Array.Clear(activeFielderAction, "", activeFielderAction.Length);

不是Array.Clear()的有效使用- 中间参数必须是 int,就像您在上一行中所做的那样。

于 2012-12-07T05:30:07.963 回答
0

您只需将 Array 对象引用设置为 null 示例

字符串 url = " http://localhost/RestWebService/employee ?" 姓名+“,”+身份证;String[] arr = url.Split('?');

        arr = null;
        arr = url.Split('?');

就这样

于 2016-08-19T10:42:31.567 回答