2013-06-06 63 views
0

我想通过方法订购数组:如何在lambda表达式中调用异步方法?

MyList.OrderBy(p=>CalcValue(p)) 

我想,计算将执行异步。

我使用.net 4,所以我不能将方法声明为async。

如果我会创建一些首先会计算值的代码,存储它们,并且只能通过lambda表达式对它进行排序,但是如何直接在lambda表达式中进行呢?

可能吗?

+1

您需要准确解释“计算将执行异步”的含义 - 此处的上下文是什么?你想回报什么?更多的细节会让你更容易给你一个有用的答案。 –

回答

1

从你的问题中不太清楚你到底想要什么。

这可能会帮助你,它会首先计算所有的值,然后将它与它分类,尽管你的术语aync在这个上下文中对我来说还不清楚。

MyList.Select(p=>new {p,CalcValue = CalcValue(p)}) 
     .OrderBy(x=>x.CalcValue) 
     .Select(x=>x.p); 
+0

谢谢!这非常有帮助! – user436862

+0

欢迎!这是你想要的吗? –

+0

如果它对您有帮助,您可以将其标记为正确答案,并且这正是您想要的。 –