.NET 4.x Как прочесть массив из словаря (Dictionary) - C#

Узнай цену своей работы

Формулировка задачи:

У меня есть словарь, состоящий из одной пары: число int и массив float. Я не могу понять как мне прочитать значения float по индексу. Например в словарь записан порядковый номер (int) и массив float. Как мне внутри того же номера обращаться к разным элементам массива по индексам? И главный вопрос, есть ли способ скопировать этот массив float из словаря в обычный массив? Что я пытался:
Листинг программы
  1. Dictionary<int, float[]> inv_bind_mats = new Dictionary<int, float[]>();
  2. float[] Farr = new float[16];
  3. string path2 = Application.StartupPath + "\\skeletons" + skeletonName + ".bone_inv_trans_mats";
  4. ................................................................................
  5. using (BinaryReader inv_trans_mats = new BinaryReader(File.Open(path2, FileMode.Open, FileAccess.Read, FileShare.Read), Encoding.ASCII))
  6. {
  7. inv_trans_mats.BaseStream.Seek(4, SeekOrigin.Begin);
  8. bonesCount = inv_trans_mats.ReadUInt32();
  9. for (int i = 0; i < bonesCount; i++)
  10. {
  11. for (int j = 0; j < 16; j++)
  12. {
  13. if (j < 12)
  14. {
  15. Farr[j] = inv_trans_mats.ReadSingle();
  16. }
  17. else if (j >= 12)
  18. {
  19. Farr[j] = 0.0f;
  20. }
  21. }
  22. inv_bind_mats.Add(i, Farr);
  23. }
  24. }
  25. MessageBox.Show(inv_bind_mats.Values.ElementAt(0).ToString());
  26. }
В этом коде я читаю двоичный файл и из него записываю в словарь матрицу 3х4 для каждой кости. В файле пока что 50 костей и 12 значений для каждой. Кол-во костей будет разное, а вот матрица всегда 3х4. Для моих нужд нужна матрица 4х4 поэтому я ее дополняю нулями.
EDIT: Разобрался, но почему-то вместо того чтобы для каждой кости записывать свой массив, этот код записывает один и тот же (последний) массив во все кости.

Решение задачи: «.NET 4.x Как прочесть массив из словаря (Dictionary)»

textual
Листинг программы
  1. float[] Farr = new float[16];

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

7   голосов , оценка 4 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы