Как удалить массив arraylist с помощью c #? - PullRequest
0 голосов
/ 27 июля 2011

Как удалить массив из массива

class Program
{
    static void Main(string[] args)
    {
        ArrayList[] arr = new ArrayList[3000];
        int capacityForList = 2;

        int i = 0;
        int j;
        int k;

        arr[i] = new ArrayList();
        arr[i].Add("A");
        i++;
        arr[i] = new ArrayList();
        arr[i].Add("B");
        i++;
        arr[i] = new ArrayList();
        arr[i].Add("C");
        i++;
        arr[i] = new ArrayList();
        arr[i].Add("D");
        i++;
        arr[i] = new ArrayList();
        arr[i].Add("E");
        i++;
    }
}

из этого я хочу удалить обр [3]

Спасибо

Ответы [ 2 ]

2 голосов
/ 27 июля 2011

Вы не можете «удалить» элементы из массива так же, как вы можете из List<T> или ArrayList - вы можете только заменить элементы. Вы можете скопировать целый кусок массива, используя Array.Copy, правда, но это немного уродливо.

Лучшим решением было бы изменить код для использования List<List<string>>:

List<List<string>> list = new List<List<string>>
{
    new List<string> { "A" },
    new List<string> { "B" },
    new List<string> { "C" },
    new List<string> { "D" },
    new List<string> { "E" }
};

list.RemoveAt(3); // Removes the list containing "D"

Однако всякий раз, когда я вижу код, использующий коллекции коллекций, я нервничаю ... что здесь означает ? Не могли бы вы изменить внутренний список строк на что-то более значимое? Если бы вы могли дать нам больше информации о картине, это действительно помогло бы.

Да, и старайтесь избегать использования неуниверсальных коллекций, таких как ArrayList. Тип безопасности важен:)

0 голосов
/ 27 июля 2011

Самое простое, что нужно сделать - использовать List<ArrayList> вместо ArrayList[], вы можете просто позвонить arr.RemoveAt(3)

...