Получить все (Properties.Resources) для хранения в словаре - PullRequest
5 голосов
/ 11 мая 2009

На основе идентификатора я хотел бы автоматически загрузить изображение в мой графический интерфейс. Для этого я хотел бы иметь возможность получить все изображения из файла Resources.resx в Visual Studio 2008 (с использованием C #). Я знаю, что могу получить по одному, если я знаю, что они:

Image myPicture = Properties.Resources.[name of file];

Однако то, что я ищу, это в том же духе ...

foreach(Bitmap myPicture in Properties.Resources) {Do something...}

Ответы [ 2 ]

11 голосов
/ 12 мая 2009

Просто используйте Linq (тм)

ResourceManager rm = Properties.Resources.ResourceManager;

ResourceSet rs = rm.GetResourceSet(new CultureInfo("en-US"), true, true);

if (rs != null)
{
   var images = 
     from entry in rs.Cast<DictionaryEntry>() 
     where entry.Value is Image 
     select entry.Value;

   foreach (Image img in images)
   {
     // do your stuff
   } 
}
1 голос
/ 11 мая 2009

Хорошо, похоже, это работает, но я бы приветствовал другие ответы.

ResourceManager rm = Properties.Resources.ResourceManager;

ResourceSet rs = rm.GetResourceSet(new CultureInfo("en-US"), true, true);

if (rs != null)
{
   IDictionaryEnumerator de = rs.GetEnumerator();
   while (de.MoveNext() == true)
   {
      if (de.Entry.Value is Image)
      {
         Bitmap bitMap = de.Entry.Value as Bitmap;
      }
   }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...