2012-12-07 4 views
7

Ich benutze die Funktion Array.Clear(), um ein Array zu leeren, aber es erzeugt einen Fehler. Dies ist der Code, den ich verwendet wurde:Wie wird das Array in C# geleert?

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

Der Fehler ist:

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

Wie kann ich dieses Problem lösen?

+2

Der Fehler der Klasse Array würde darauf hinweisen, ist in ihrem Umfang nicht. Könnten Sie Ihren Beispielcode erweitern, um zumindest die Methodendeklarationen und möglicherweise Ihre Verwendung anzuzeigen? – vossad01

+0

Es gibt mehrere Möglichkeiten zum Löschen von Arrays. Obwohl Array.Clear() am einfachsten ist in Bezug auf Code, wenn Sie interessiert sind [hier sind andere Methoden] (http://blogs.davelozinski.com/curiousconsultant/csharp-net-fastest-way-to-clear (Sammlungen) –

Antwort

2

Der folgende Code gearbeitet:

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); 
     } 
    } 
} 
9

Sie

verwendet haben
using System; 

und einen weiteren Punkt zu korrigieren:

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

sollte es

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

Die letzten beiden Parameter sind die zu entfernenden Indexbereiche.

5

Ich verwende Array.Clear() -Funktion, um Array zu leeren. Aber es war Fehler werfen

Nein, ich war nicht. Die Clear-Funktion warf keinen Fehler, der COMPILER war.

Fehler CS0103: Der Name `Array‘ existiert nicht im aktuellen Kontext

Google folgendes sagt, wenn wir für CS0103 aussehen:

Compiler Error CS0103 (C#) at MSDN

Ein Versuch wurde gemacht, um einen Namen zu verwenden, der nicht in der Klasse existiert, Namespace oder Bereich. Überprüfen Sie die Schreibweise des Namens und überprüfen Sie Ihre mithilfe von Anweisungen und Assemblyverweisen, um sicherzustellen, dass der Name , den Sie verwenden möchten, verfügbar ist. Ein häufiger Fehler besteht darin, eine Variable innerhalb einer Schleife oder eines try Blocks zu deklarieren und dann von einem umschließenden Codeblock oder einem anderen Codeblock aus auf zuzugreifen, wie in dem folgenden Beispiel gezeigt ist: .

Übersetzt in: Array wird nicht im Kontext gefunden. Vermissen Sie eine "using" -Anweisung?

0

Die Linie

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

ist keine gültige Verwendung von Array.Clear() - der mittlere Parameter muss ein int sein, wie Sie in der vorhergehenden Zeile haben.

1

Die Methode Array.Clear() setzt das Array nur in den Standardzustand zurück.

auf die Aussage Basierend

Array.Clear(activeFielderAction, "", activeFielderAction.Length); wir einen Fehler bekommen kann.

Die eigentliche Aussage sollte

sein

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

Prüfen Sie auch, ob Sie importing Using.System; Namespace sind.

Versuchen Sie den folgenden Code.

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); 
1

Leider habe ich nicht genug Punkte, um einen Kommentar zu schreiben, so hat eine „Antwort“ hier zur Verfügung zu stellen ... für alle „Speed-Junkies“ gab, gibt es zahlreiche Möglichkeiten, um ein Array zu löschen (nicht nur Array.Clear) as demonstrated here, aber in der Regel Array.Clear ist die einfachste und schnellste.

Hier gibt es 3 Möglichkeiten, die ein Array löschen getestet wurden (direct from the site), wobei „o1“ ist das Objekt Array:

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; 
}); 

Ich dachte, es interessant zu lesen war, wie ich nie einen zweiten Gedanken zu versuchen, eine andere gab Weg (vor allem mit einer parallelen Schleife) anders als Array.Clear obwohl.

4

Versuchen Sie, diese

Array.Clear(yourArray, 0, yourArray.Length); 
Verwandte Themen