Ответ 1
Я не уверен в С#, но в Java работает, например:
вместо
{1,1}
попробовать
new int[]{1,1}
или
new[]{1,1}
Я пытаюсь инициализировать словарь со строковыми элементами как ключи и int [] элементами как значения, как показано ниже:
System.Collections.Generic.Dictionary<string,int[]> myDictionary;
myDictionary = new Dictionary<string,int[]>{{"length",{1,1}},{"width",{1,1}}};
Но отладчик продолжает говорить: "Неожиданный символ" {'".
Не могли бы вы рассказать мне, что не так с вышеуказанным кодом?
Спасибо!
Я не уверен в С#, но в Java работает, например:
вместо
{1,1}
попробовать
new int[]{1,1}
или
new[]{1,1}
Ниже приведены два примера, которые работают. Второй пример работает только внутри метода. Первый пример будет работать внутри метода или вне метода в классе.
В исходном коде отсутствовал() для нового оператора 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} },
};
}
}
System.Collections.Generic.Dictionary<string,int[]> myDictionary;
myDictionary = new Dictionary<string, int[]> { { "length", new int[] { 1, 1 } }, { "width", new int[] { 1, 1 } } };
Вам нужно указать, что это массив, который вы вставляете в свой словарь:
System.Collections.Generic.Dictionary<string, int[]> myDictionary;
myDictionary = new Dictionary<string, int[]> {{"length", new int[]{1,2}},{ "width",new int[]{3,4}}};
В дополнение ко всем хорошим ответам вы также можете попробовать это.
Dictionary<string, List<int>> dict = new Dictionary<string, List<int>>();
Если возможно, выберите List < > over array, так как изменение размера в массивах затруднено. Вы не можете удалить элемент из массива. Но элемент можно удалить из списка.