foreach有多个DictionaryEntry

rbe*_*liv 4 c# foreach

我正在尝试使用3个已存在的resx文件的内容写入ListView.使用以下循环只有一个文件产生接近我想要的,但我需要使用与多个DictionaryEntrys相同的循环.我想做的事情看起来像这样......

ResXResourceReader rdr0 = new ResXResourceReader(textPath1.Text + ".resx");
ResXResourceReader rdr1 = new ResXResourceReader(textPath1.Text + ".es.resx");
ResXResourceReader rdr2 = new ResXResourceReader(textPath1.Text + ".fr.resx");

foreach ((DictionaryEntry d in rdr0) && (DictionaryEntry e in rdr1))
{
    string[] row = { d.Key.ToString(), d.Value.ToString(), e.Value.ToString() };
    var listViewItem = new ListViewItem(row);
    listResx.Items.Add(listViewItem);
}
Run Code Online (Sandbox Code Playgroud)

SLa*_*aks 8

foreach关键字不能做到这一点.

相反,您可以使用LINQ .Zip()方法:

foreach(var item in rdr0.Zip(rdr1, (d, e)
         => new [] { d.Key.ToString(), d.Value.ToString(), e.Value.ToString() }))
Run Code Online (Sandbox Code Playgroud)