0

我有一个用于选择文件扩展名的组合框,例如“图像,(*.png,*.jpg)”。我想从字典键/值对中获取数据。我为第一部分添加了字符串,例如“图像”,对于扩展我添加了一个列表,因为可以有多个。我在显示 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 回答