0

「画像、(* .png、* .jpg)」などのファイル拡張子を選択するためのコンボボックスがあります。Dictionary のキーと値のペアからデータを取得したいと考えています。たとえば「画像」などの最初の部分に文字列を追加し、拡張機能には複数ある可能性があるためリストを追加しました。このデータを使用して、SaveFileDialog または OpenFileDialog を表示します。これらの拡張機能を SaveFileDialog のフィルターとして使用するにはどうすればよいですか? 助けていただけませんか?

ExtensionCollection = new Dictionary<string, IList<String>>();
ExtensionTypeCollecction = new List<String>();
Extensions = new List<IList<String>>();
perExtension = new List<String>();
perExtension.Add("*.png");
perExtension.Add("*.jpg");
Extensions.Add(perExtension);
ExtensionTypeCollecction.Add("Images");
ExtensionCollection.Add("Images", perExtension);

前もって感謝します

4

2 に答える 2

1

これがあなたが求めているものだと思います:

var d = new Dictionary<string, IList<string>>();
d.Add("Images", new List<string>{ "*.png", "*.jpg" });

var key = "Images";
var extensions = d["Images"];

var filter = key + "|" + string.Join(";", extensions.ToArray());

与える

filter = "Images|*.png;*.jpg"

または、これを行うことができます

var extString = string.Join(";", extensions.ToArray());
var filter = key +" (" + extString + ")|" + extString;

その結果、

filter = "Images (*.png;*.jpg)|*.png;*.jpg"

もちろん、必要に応じて通常の"|All files (*.*)|(*.*)"フィルター オプションを追加することもできます。

于 2012-04-05T22:27:00.003 に答える
0

これは役に立ちますか?

   foreach (string ext in Dictionary["images"])
   {
       Debug.WriteLine(ext);
   }
于 2012-04-05T21:59:53.603 に答える