在没有For循环的Linq中配对集合

Lia*_*ath 3 c# linq

我有两个系列

int[] numbers = {5, 2, 1, 5};
string[] words = {"flibble", "bobble", "double", "dumble"};
Run Code Online (Sandbox Code Playgroud)

我想使用第一个在第二个集合上使用linq表达式.使用循环我会做以下事情

List<string> results = new List<string>();
for(int i = 0; i<numbers.Count(), i++)
{
  results.Add(words[i].SubString(numbers[i]);
}
return results;
Run Code Online (Sandbox Code Playgroud)

然而,这涉及创建一个没有真正原因的列表......有没有办法在Linq中执行此操作?

Jus*_*ner 9

我猜你正在寻找Enumerable.Zip():

numbers.Zip(words, (n, w) => w.Substring(n));
Run Code Online (Sandbox Code Playgroud)