2 votes

Comment effacer les éléments d'un tableau parce que clear ne fonctionne pas ?

C'est mon code, mais clear ne fonctionne pas, mais je n'arrive pas à trouver l'erreur. C'est la première fois que la méthode claire ne fonctionne pas, quelqu'un peut m'aider ?

using System; 
using System.Collections.Generic; 
public class test{ 
    public static void Main() 
    { 
        try {  
            int[] myArr = {-1, 4, 8, 6}; 
            PrintIndexAndValues(myArr); 
            Console.WriteLine(); 

            Console.WriteLine("Taking index out of bound:"); 
            Array.clear(myArr, 1, 2); 
            Console.WriteLine("Array After Operation:"); 
            PrintIndexAndValues(myArr); 
        } 

    } 
    public static void PrintIndexAndValues(int[] myArr) 
    { 
        for (int i = 0; i < myArr.Length; i++) { 
            Console.WriteLine("{0}", myArr[i]); 
        } 
    } 
}

2voto

Honduriel Points 117

De Tableaux (Guide de programmation C#) :

Le nombre de dimensions et la longueur de chaque dimension sont établis lors de la création de l'instance de tableau. Ces valeurs ne peuvent pas être modifiées pendant la durée de vie de l'instance.

Si vous voulez pouvoir utiliser Clear() comme vous l'aviez prévu, vous devez utiliser une liste à la place :

List<int> myList = new List<int>{-1, 4, 8, 6};

// Do some stuff with your list

myList.Clear();

Éditer : Votre PrintIndexAndValues n'imprime en fait que les valeurs, voici comment vous pourriez le faire à la place :

public static void PrintIndexAndValues(List<int> myList) 
    for (int i = 0; i < myList.Count; i++)
    {
        Console.WriteLine("{0}: {1}", i, myList[i]);
    } 

Edit2 : Je viens de réaliser que vous vouliez probablement supprimer le premier et le dernier élément du tableau, et non pas effacer tout le tableau ? Ceci devrait faire l'affaire :

myList.RemoveAt(3)
myList.RemoveAt(0)

0voto

CipherShark Points 83

Le code suivant est votre code corrigé

using System; 
using System.Collections.Generic; 

public class Test
{ 
    public static void Main() 
    { 
            int[] myArr = {-1, 4, 8, 6}; 

            PrintIndexAndValues(myArr); 
            Console.WriteLine(); 

            Console.WriteLine("Taking index out of bound:"); 
            Array.Clear(myArr, 0, myArr.Length);

            Console.WriteLine("Array After Operation:"); 
            PrintIndexAndValues(myArr); 
    } 

    public static void PrintIndexAndValues(int[] myArr) 
    { 
        for (int i = 0; i < myArr.Length; i++)  
            Console.WriteLine("{0}", myArr[i]); 
    } 
} 

Cela mettra TOUTES les valeurs de votre tableau à 0.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X