2009-05-11 10 views
5

IDに基づいて、GUIに画像を自動的にロードしたいと思います。これを行うには、Visual Studio 2008でC#を使用してResources.resxファイルからすべてのイメージを取得したいと考えています。私は、彼らが何であるかを知っていれば一度に一つを取得することができるよ知っている:すべての(Properties.Resources)を辞書に保存する

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

しかし何私が探していることは、これらの線に沿っている...

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

答えて

11

ただ、他のデータ型がresource.resxファイルである場合は特に、私はこれが好きLINQの(TM)

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 
    } 
} 
+0

を使用しています。私はまだLinqを勉強していないので、これはこの作業を行うコードを生成すると仮定しています。スピードの違いは上の答えとは何でしょうか?私はそれが無視できると思っていますが、常に尋ねるのが最善です。答えてくれてありがとう! – Billy

+0

codegenはありません。これがコードです。 スピードに関しては、同じ球場になければなりません。 –

+0

助けてくれてありがとうシェイ! – Billy

1

[OK]を、これがそうですしかし、私は他の答えを歓迎するでしょう。

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; 
     } 
    } 
} 
関連する問題