我想按方法排序数组:
MyList.OrderBy(p=>CalcValue(p))
我希望计算执行异步。
我正在使用.net 4,所以我不能将这些方法声明为异步。
如果我要创建某种首先计算值的代码,请存储它们,而不是按lambda表达式对它进行排序,但是如何直接在lambda表达式中进行排序?
有可能吗?
答案 0 :(得分:1)
从你的问题中不清楚你究竟想要什么。
这可能对你有所帮助,它会首先计算所有值,然后用它对它进行排序,尽管你的术语aync对我来说并不清楚。
MyList.Select(p=>new {p,CalcValue = CalcValue(p)})
.OrderBy(x=>x.CalcValue)
.Select(x=>x.p);