Member 13770264 Ответов: 1

Сумма словарного значения


 Dictionary<string, int[,]> Matrices = new Dictionary<string, int[,]
//Get the values of dictionary in an array
 public object[] Tab_Mat(Dictionary<string, int[,]> a)
        {
            object[] ruleArray = new object[a.Count];
            int num = 0;
            foreach (KeyValuePair<string, int[,]> rule in a)
                ruleArray[num++] = rule.Value;
            return ruleArray;
        }
//Get the sum of the values of the dictionary
public int[,] sum_global_Mat(Dictionary<string, int[,]> config)
        {
            var a = Tab_Mat(config);
            var newArray = Array.ConvertAll(a, item => (int[,])item);
            int[,] m = new int[newArray[0].GetLength(0), newArray[0].GetLength(1)];
            for ( int i=0;i<a.Length;i++)
            {
                for (int h = 0; h < m.GetLength(0); h++)
                    for (int j = 0; j < m.GetLength(1); j++)
                        
                        m[h,j] =(int)a[i]+(int)a[i+1] ;
            }
            return m;
        }

>();

Что я уже пробовал:

Привет Эври один я большой игрок в Си#,
Я попытался сделать сумму значений словаря ,зная,что эти значения являются Матрицей, но это дало мне следующую ошибку :

-Система.Которого вызывается invalidcastexception'

OriginalGriff

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

1 Ответов

Рейтинг:
1

OriginalGriff

Цитата:
-Система.Которого вызывается invalidcastexception'
Немного помогает, Но зная, какая линия сделает нашу работу проще...

На первый взгляд, это такая линия:
m[h,j] =(int)a[i]+(int)a[i+1] ;
и это подразумевает, что a не содержит целых чисел. Поэтому начните с того, что именно возвращает Tab_Mat, а затем используйте отладчик, чтобы точно узнать, что находится внутри a[i] и a[i + 1] когда возникает проблема.
Мы не можем сделать это за вас: у нас нет никакого доступа к вашему коду, пока он работает!