c#并行foreach循环查找索引
Posted
技术标签:
【中文标题】c#并行foreach循环查找索引【英文标题】:c# parallel foreach loop finding index 【发布时间】:2017-02-04 09:53:44 【问题描述】:我正在尝试读取文本文件中的所有行并计划显示每行信息。如何找到循环内每个项目的索引?
string[] lines = File.ReadAllLines("MyFile.txt");
List<string> list_lines = new List<string>(lines);
Parallel.ForEach(list_lines, (line, index) =>
Console.WriteLine(index);
// Console.WriteLine(list_lines[index]);
Console.WriteLine(list_lines[0]);
);
Console.ReadLine();
【问题讨论】:
你的index
有什么问题?
这里的索引在调试时显示真假。
啊,因为正如柯蒂斯所说,index
是回调的第三个参数,而不是第二个。
【参考方案1】:
another overload 对应于 Parallel.ForEach
,它为您提供索引。
Parallel.ForEach(list_lines, (line, state, index) =>
Console.WriteLine(index);
Console.WriteLine(list_lines[(int)index]); // The type of the `index` is Long.
);
【讨论】:
用回调参数(line
)代替list_lines[index]
不是更好吗?
当然,这只是一个示例,表明该行在语法和语义上是有效的(index
是正确的类型并且在语义上表示当前行的索引)。
可能是我要找的,我试过后会回复你的。以上是关于c#并行foreach循环查找索引的主要内容,如果未能解决你的问题,请参考以下文章
C#中list<>定义的变量,我用foreach()循环查找 与 list<> .find 查找两个哪个效率高?后者是不是用了算法