我有一个Combobox用于选择文件扩展名,例如“Images,(* .png,* .jpg)”。我想从Dictionary键/值对中获取数据。我为第一部分添加了字符串,例如“Images”和扩展我添加了一个列表,因为可以有多个。我在显示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);
提前致谢
答案 0 :(得分: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 (*.*)|(*.*)"
过滤器选项。
答案 1 :(得分:0)
这有帮助吗?
foreach (string ext in Dictionary["images"])
{
Debug.WriteLine(ext);
}