【发布时间】:2014-12-18 11:19:23
【问题描述】:
我对 LINQ 有点陌生,所以我在谓词方面遇到了困难,因此我需要你的帮助。
我有一个父任务返回我一个集合 ex:一个列表,List<CSample>。对象基本上可以表示如下:
public class CSample
{
public double Distance { get; set; }
public double XPosition { get; set; }
public double Error { get; set; }
}
来到我的父任务,一旦我的所有子任务都执行完毕,我必须继续处理 CSample 集合项。
Task<List<CSample>> parent = new Task<List<CSample>>(() =>
{
results = new List<CSample>(); // list to store results
//.. processing of child tasks in parallel
return results;
});
所以我的父任务继续进行其他处理(即在这种情况下找到 Error 值最小的项目。)
var cwt = parent.ContinueWith
(p =>
{
if (p.Result != null && p.Result.Count > 0)
{
CSample processedData = (CSample )(p.Result.OrderBy(s => s.Error).FirstOrDefault());
}
}
);
但是,我的应用程序在这一行抛出了一个对象空引用异常,s is null
CSample processedData = (CSample )(p.Result.OrderBy(s => s.Error).FirstOrDefault());
这是我使用谓词查找具有最小错误值的项目的正确方法吗?
【问题讨论】:
标签: linq c#-4.0 parallel-processing task-parallel-library