我用下面的C#代码的工作:从哪里传递参数到PLINQ中使用的lambda表达式的参数?
//Custom structure
struct IndexedWord
{
public string Word;
public int Index;
}
static void Main(string[] args)
{
string[] wordsToTest = {"word1", "word2"};
var query = wordsToTest
.AsParallel()
.Select((word, index) =>
new IndexedWord {Word = word, Index = index});
foreach(var structs in query)
{
Console.WriteLine("{0},{1}", structs.Word,structs.Index);
}
Console.WriteLine();
Console.ReadKey();
}
//输出 word1,0 word2,1
问: 上面的代码工作正常。在执行代码时,“Select”查询运算符中的lamba表达式返回一个自定义结构“IndexedWord”的实例。表达式的参数接收来自wordToTest []数组的参数值。例如,如果参数“word”被传递值“word1”,则参数“index”被传递给wordToTest []数组中的“word1”的对应索引位置。我无法准确理解查询的哪一点(可能是内部的),这种提取以及将参数传递给lambda表达式会发生。如何提取wordsToTest []数组的数据及其索引位置并将其传递给lamba表达式的参数?什么导致这种提取?请在此澄清。谢谢。
谢谢。根据你的回答,我能够解决上述疑问。 –