.NET 4.x Как прочесть массив из словаря (Dictionary) - C#
Формулировка задачи:
У меня есть словарь, состоящий из одной пары: число int и массив float.
Я не могу понять как мне прочитать значения float по индексу.
Например в словарь записан порядковый номер (int) и массив float. Как мне внутри того же номера обращаться к разным элементам массива по индексам?
И главный вопрос, есть ли способ скопировать этот массив float из словаря в обычный массив?
Что я пытался:
В этом коде я читаю двоичный файл и из него записываю в словарь матрицу 3х4 для каждой кости. В файле пока что 50 костей и 12 значений для каждой. Кол-во костей будет разное, а вот матрица всегда 3х4. Для моих нужд нужна матрица 4х4 поэтому я ее дополняю нулями.
Dictionary<int, float[]> inv_bind_mats = new Dictionary<int, float[]>(); float[] Farr = new float[16]; string path2 = Application.StartupPath + "\\skeletons" + skeletonName + ".bone_inv_trans_mats"; ................................................................................ using (BinaryReader inv_trans_mats = new BinaryReader(File.Open(path2, FileMode.Open, FileAccess.Read, FileShare.Read), Encoding.ASCII)) { inv_trans_mats.BaseStream.Seek(4, SeekOrigin.Begin); bonesCount = inv_trans_mats.ReadUInt32(); for (int i = 0; i < bonesCount; i++) { for (int j = 0; j < 16; j++) { if (j < 12) { Farr[j] = inv_trans_mats.ReadSingle(); } else if (j >= 12) { Farr[j] = 0.0f; } } inv_bind_mats.Add(i, Farr); } } MessageBox.Show(inv_bind_mats.Values.ElementAt(0).ToString()); }
EDIT: Разобрался, но почему-то вместо того чтобы для каждой кости записывать свой массив, этот код записывает один и тот же (последний) массив во все кости.
Решение задачи: «.NET 4.x Как прочесть массив из словаря (Dictionary)»
textual
Листинг программы
float[] Farr = new float[16];
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д