将多个文件传递给函数
Pass Multiple files to function
我有一个函数在 OpenFileDialog 确定后处理 xml 个文件,它支持多个 select 文件
openFileDialog1.Multiselect = true;
openFileDialog1.Filter = "*.xml|*.XML";
openFileDialog1.Title="Please Select Xml file to convert ";
if (openFileDialog1.ShowDialog(this) == DialogResult.OK)
{
foreach (string file in openFileDialog1.FileNames)
{
//string lsit contain file names
Filestoconvert.Add(file);
}
}
函数在其上进行处理。
for (int i = 0; i < Filestoconvert.Count; i++)
{
XmlProcess( Filestoconvert[i]);
}
但是当 select 文件只有最后一个 selected 文件传递给函数时,其他文件只在列表中读取。
我想select多个文件传给这个函数一个一个处理这些文件,不用手动传文件给它
任何人都可以解释如何做到这一点吗?给我一段代码或者link?
没有看到 XmlProcess
的实现,这是一个猜谜游戏。你说这个方法没有按预期工作,但你没有向我们展示这个方法是如何工作的。你怎么能指望别人帮助你呢?
尽管如此,如果你想将多个文件传递给函数,只需将签名从
void XmlProcess(string file) // should be something very similar
到
void XmlProcess(IEnumerable files)
现在您可以传递数组、列表或任何其他实现 IEnumerable
接口的对象。
我有一个函数在 OpenFileDialog 确定后处理 xml 个文件,它支持多个 select 文件
openFileDialog1.Multiselect = true;
openFileDialog1.Filter = "*.xml|*.XML";
openFileDialog1.Title="Please Select Xml file to convert ";
if (openFileDialog1.ShowDialog(this) == DialogResult.OK)
{
foreach (string file in openFileDialog1.FileNames)
{
//string lsit contain file names
Filestoconvert.Add(file);
}
}
函数在其上进行处理。
for (int i = 0; i < Filestoconvert.Count; i++)
{
XmlProcess( Filestoconvert[i]);
}
但是当 select 文件只有最后一个 selected 文件传递给函数时,其他文件只在列表中读取。
我想select多个文件传给这个函数一个一个处理这些文件,不用手动传文件给它
任何人都可以解释如何做到这一点吗?给我一段代码或者link?
没有看到 XmlProcess
的实现,这是一个猜谜游戏。你说这个方法没有按预期工作,但你没有向我们展示这个方法是如何工作的。你怎么能指望别人帮助你呢?
尽管如此,如果你想将多个文件传递给函数,只需将签名从
void XmlProcess(string file) // should be something very similar
到
void XmlProcess(IEnumerable files)
现在您可以传递数组、列表或任何其他实现 IEnumerable
接口的对象。