Хранение массива значений по ключу - 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])));
- }
- }
- }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д