web-dev-qa-db-fra.com

Comment vider le tableau en C #?

J'utilise la fonction Array.Clear() pour vider un tableau, mais cela génère une erreur. C'est le code que j'utilisais:

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

L'erreur est:

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

Comment puis-je résoudre ce problème?

9
Ethan

as-tu utilisé 

using System;

et encore un point à corriger:

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

cA devrait etre

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

Les deux derniers paramètres sont les plages d'index à effacer.

12
Azodious

Essaye ça

Array.Clear(yourArray, 0, yourArray.Length);
5
Manoj

J'utilise la fonction Array.Clear () pour vider un tableau. Mais c'était jeter l'erreur

Non, je n'etais pas. La fonction Clear ne lançait pas d'erreur, le COMPILER l'était.

erreur CS0103: Le nom `Array 'n'existe pas dans le contexte actuel

Google dit ce qui suit lorsque nous recherchons le CS0103:

Erreur CS0103 du compilateur (C #) chez MSDN

Une tentative d'utilisation d'un nom qui n'existe pas dans la classe, l'espace de noms Ou la portée a été tentée. Vérifiez l'orthographe du nom et vérifiez votre À l'aide des instructions et des références d'Assemblée pour vous assurer que le nom Que vous essayez d'utiliser est disponible. Une erreur courante consiste à déclarer une variable Dans une boucle ou un bloc try, puis à tenter d'y accéder à À partir d'un bloc de code englobant ou d'un autre bloc de code, comme indiqué dans . exemple suivant.

Traduit en: Le tableau ne se trouve pas dans le contexte. Vous manque une déclaration "using"?

4
TomTom

Le code suivant a fonctionné:

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

La méthode Array.Clear() réinitialise uniquement le tableau à son état par défaut. 

Basé sur la déclaration 

Array.Clear(activeFielderAction, "", activeFielderAction.Length); il est possible que nous obtenions une erreur. 

La déclaration réelle devrait être 

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

Vérifiez également si vous êtes un espace de noms importing Using.System;.

Essayez le code ci-dessous.

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
Vamsi Vithala

Malheureusement, je n'ai pas assez de points pour poster un commentaire, je dois donc fournir une "réponse" ici ... pour tous les "accros de la vitesse", il existe de nombreuses façons d'effacer un tableau (et pas seulement Array. Clear ) comme démontré ici , mais généralement Array.Clear est le plus simple et le plus rapide.

Voici 3 méthodes qui ont été testées pour effacer un tableau ( directement du site ) où "o1" est le tableau d'objets:

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

Je pensais que c'était une lecture intéressante car je n'avais jamais pensé à essayer une autre façon (en particulier d'utiliser une boucle parallèle) que Array.Clear quoique.

1
Thrawn Wannabe

La ligne

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

n’est pas une utilisation valide de Array.Clear () - le paramètre central doit être un int, comme vous l’aviez sur la ligne précédente.

0
slugster

Vous définissez simplement la référence d'objet Array à l'exemple null

String url = " http: // localhost/RestWebService/employee ?" name + "," + id; String [] arr = url.Split ('?');

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

C'est tout

0
user3728743