public void SetTemplate(ushort key, StainingTemplateEntry entry) { if (Templates.ContainsKey(key)) { Templates[key] = entry; } else { Templates.Add(key, entry); } }
public StainingTemplateFile(byte[] data) { var Header = BitConverter.ToInt32(data, 0); var entryCount = BitConverter.ToUInt16(data, 4); Dictionary <ushort, ushort> entries = new Dictionary <ushort, ushort>(); List <ushort> keys = new List <ushort>(); List <ushort> values = new List <ushort>(); List <int> sizes = new List <int>(); var offset = 8; for (int i = 0; i < entryCount; i++) { var key = BitConverter.ToUInt16(data, offset); entries.Add(key, 0); keys.Add(key); offset += 2; } var endOfHeader = (8 + (4 * entryCount)); for (int i = 0; i < entryCount; i++) { entries[keys[i]] = (ushort)((BitConverter.ToUInt16(data, offset) * 2) + endOfHeader); offset += 2; } var idx = 0; foreach (var kv in entries) { var entry = new StainingTemplateEntry(data, kv.Value); Templates.Add(kv.Key, entry); idx++; } }