static BasicMimeTypesX() { MTIDict_ByEnums = AllTypes.ToDictionary(v => v.MimeType, v => v); MTIDict_ByMimeNames = AllTypes.ToDictionary(v => v.MimeTypeString, v => v); MTIDict_ByExtensions = AllTypes.Where(v => v.Extension.NotNulle()).ToDictionary(v => v.Extension, v => v); for (int i = 0; i < AllTypes.Length; i++) { MTI mti = AllTypes[i]; if (mti.ExtraMimeStrings.NotNulle()) { foreach (string extMimeStr in mti.ExtraMimeStrings) { if (!MTIDict_ByMimeNames.ContainsKey(extMimeStr)) { MTIDict_ByMimeNames.Add(extMimeStr, mti); } } } if (mti.ExtraExtensions.NotNulle()) { foreach (string ext in mti.ExtraExtensions) { if (!MTIDict_ByExtensions.ContainsKey(ext)) { MTIDict_ByExtensions.Add(ext, mti); } } } } }