相关疑难解决方法(0)

订购PLINQ ForAll

关于PLINQ中的订单保存的msdn文档说明了以下内容ForAll().

  • 订购源序列时的结果:并行执行非确定性
  • 源序列无序时的结果:并行执行非确定性

这是否意味着ForAll永远不能保证该方法的有序执行?

我以前没有使用PLINQ,但以下Code Review问题似乎是适合它的用法.在我的回答的底部,我写道:

Events.AsParallel().AsOrdered().ForAll( eventItem =>
{
    ...
} );    
Run Code Online (Sandbox Code Playgroud)

阅读文档后,我相信AsOrdered()不会改变任何东西?
我也怀疑以前的查询不能取代for顺序很重要的简单循环?
可能StringBuilder会发生与意志的并行调用,导致输出错误?

c# plinq

11
推荐指数
3
解决办法
6444
查看次数

在foreach循环内更快地检查和更新数据

我正在以下while语句中逐行读取StreamReader中的数据.

while (!sr.EndOfStream)
{
   string[] rows = sr.ReadLine().Split(sep);

   int incr = 0;
   foreach (var item in rows)
   {
       if (item == "NA" | item == "" | item == "NULL" | string.IsNullOrEmpty(item) | string.IsNullOrWhiteSpace(item))
       {
           rows[incr] = null;
       }
       ++incr;
   }
    // another logic ...
}
Run Code Online (Sandbox Code Playgroud)

代码工作正常,但由于巨大的csv文件(500,000,000行和数百列),它非常慢.有没有更快的方法来检查数据(如果它是"NA","",......应该被替换为null).目前我正在使用带有incr变量的foreach来更新foreach中的项目.

我想知道linq或lambda会更快但我在这些方面很新.

c# linq

5
推荐指数
1
解决办法
132
查看次数

标签 统计

c# ×2

linq ×1

plinq ×1