Простой метод - создать список строк, соответствующих именам растровых изображений, и загрузить их в один go. Здесь, вероятно, лучше использовать List<Bitmap>
, но Dictionary<string, Bitmap>
(как показано во втором фрагменте):
string[] zodiacSymbols = { "猴", "鸡", "狗", "猪", "鼠", "牛", "虎", "兔", "龙", "蛇", "马", "羊" };
List<Bitmap> zodiacImages = zodiacSymbols.Select(sym => (Bitmap)Properties.Resources.ResourceManager.GetObject(sym)).ToList();
Или получить все ресурсы типа Bitmap (как в этом случае) Вы можете использовать класс ResourceReader и заполнить, например, словарь:
Dictionary<string, Bitmap> resImages = new Dictionary<string, Bitmap>();
, который содержит все ресурсы типа this и имя ресурса, используемого в качестве ключа:
(конечно, вы также можете фильтровать по имени - или что-то еще - не просто Ty Type)
using System.Reflection;
var asm = Assembly.GetExecutingAssembly();
using (var asmResStream = asm.GetManifestResourceStream($"{asm.GetName().Name}.Properties.Resources.resources"))
using (var resReader = new ResourceReader(asmResStream)) {
foreach (DictionaryEntry entry in resReader) {
if (entry.Value.GetType() == typeof(Bitmap)) {
resImages.Add((string)entry.Key, (Bitmap)entry.Value);
}
}
}