如何让foreach指令在2个位置迭代?

use*_*950 0 c# wpf

如何让foreach指令在"files"变量和"names"数组中进行迭代?

var files = Directory.GetFiles(@".\GalleryImages");
string[] names = new string[8] { "Matt", "Joanne", "Robert","Andrei","Mihai","Radu","Ionica","Vasile"};
Run Code Online (Sandbox Code Playgroud)

我尝试了2个选项..第一个给了我很多错误,第二个显示了8种各种图像

foreach(var file in files,var i in names)
{
//Do stuff
}
Run Code Online (Sandbox Code Playgroud)

foreach(var file in files)
{
   foreach (var i in names)
    { 
     //Do stuff
    }
 }
Run Code Online (Sandbox Code Playgroud)

nik*_*eee 5

您可以尝试使用LINQ的Zip扩展方法:

 int[] numbers = { 1, 2, 3, 4 };
 string[] words = { "one", "two", "three" };

 var numbersAndWords = numbers.Zip(words, (first, second) => first + " " + second);

 foreach (var item in numbersAndWords)
    Console.WriteLine(item);
Run Code Online (Sandbox Code Playgroud)

看起来像这样:

 var files = Directory.GetFiles(@".\GalleryImages");
 string[] names = new string[] { "Matt", "Joanne", "Robert", "Andrei", "Mihai","Radu","Ionica","Vasile"};
 var zipped = files.Zip(names, (f, n) => new { File = f, Name = n });
 foreach(var fn in zipped)
     Console.WriteLine(fn.File + " " + fn.Name);
Run Code Online (Sandbox Code Playgroud)

但我没有测试过这个.