Подтвердить что ты не робот

Создайте словарь с массивами как значения

Я пытаюсь инициализировать словарь со строковыми элементами как ключи и int [] элементами как значения, как показано ниже:

System.Collections.Generic.Dictionary<string,int[]> myDictionary;
myDictionary = new Dictionary<string,int[]>{{"length",{1,1}},{"width",{1,1}}};

Но отладчик продолжает говорить: "Неожиданный символ" {'".

Не могли бы вы рассказать мне, что не так с вышеуказанным кодом?

Спасибо!

4b9b3361

Ответ 1

Я не уверен в С#, но в Java работает, например:

вместо

{1,1}

попробовать

new int[]{1,1}

или

new[]{1,1}

Ответ 2

Ниже приведены два примера, которые работают. Второй пример работает только внутри метода. Первый пример будет работать внутри метода или вне метода в классе.

В исходном коде отсутствовал() для нового оператора Dictionary(), который, вероятно, является тем, что дало ошибку {{unexctcted symbol error. Требуется также "новый Int []"

class SomeClass
{
    Dictionary<string, int[]> myDictionary = new Dictionary<string, int[]>()
    {
        {"length", new int[] {1,1} },
        {"width", new int[] {1,1} },
    };

    public void SomeMethod()
    {
        Dictionary<string, int[]> myDictionary2;
        myDictionary2 = new Dictionary<string, int[]>()
        {
            {"length", new int[] {1,1} },
            {"width", new int[] {1,1} },
        };

    }
}

Ответ 3

System.Collections.Generic.Dictionary<string,int[]> myDictionary;
        myDictionary = new Dictionary<string, int[]> { { "length", new int[] { 1, 1 } }, { "width", new int[] { 1, 1 } } };

Ответ 4

Вам нужно указать, что это массив, который вы вставляете в свой словарь:

System.Collections.Generic.Dictionary<string, int[]> myDictionary;
myDictionary = new Dictionary<string, int[]> {{"length", new int[]{1,2}},{ "width",new int[]{3,4}}};

Ответ 5

В дополнение ко всем хорошим ответам вы также можете попробовать это.

Dictionary<string, List<int>> dict = new Dictionary<string, List<int>>();

Если возможно, выберите List < > over array, так как изменение размера в массивах затруднено. Вы не можете удалить элемент из массива. Но элемент можно удалить из списка.