Хранение массива значений по ключу - C#
Формулировка задачи:
Стоит задача, проходясь по массиву, сохранить места расположения байтов. Например 63 - 2,15,29,54 и тд. То есть каждый раз когда вновь находим знакомый байт, добавляем в массив его расположение. Была мысль сделать через Dictioonary list'ов, так что б каждый байт был ключём. Но вроде как таким способом невозможно добавлять каждый раз число в лист. Как лучше всего это организовать?
static Dictionary<byte,List<int>> Statistic = new Dictionary<byte,List<int>>();
Решение задачи: «Хранение массива значений по ключу»
textual
Листинг программы
using System; using System.Linq; using System.Collections.Generic; class Program { public static void Main() { List<int>[] pos = new List<int>[256]; byte[] array = { 1, 2, 3, 4, 2, 2, 3 }; for (int i = 0; i < array.Length; ++i) { int b = array[i]; if (pos[b] == null) pos[b] = new List<int>(); pos[b].Add(i); } for (int i = 0; i < 256; ++i) { if (pos[i] != null) Console.WriteLine(String.Format("Byte {0} positions: {1}.", i, String.Join(", ", pos[i]))); } } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д