我的一個朋友說,在 Linq 中作為參數傳遞給 OrderBy() 的委托函數只對每個元素求值一次??紤]以下情況:var list2 = list.OrderBy(item => item.ComputationallyExpensiveFunction()).ToList();真的ComputationallyExpensiveFunction()定義為只對列表中的每個元素評估一次,還是在某些情況下可以對同一項目調用多次?
2 回答

慕田峪4524236
TA貢獻1875條經驗 獲得超5個贊

元芳怎么了
TA貢獻1798條經驗 獲得超7個贊
只有一次。你可以通過這樣做來確認它:
var result = new int[] { 5, 3, 1, 4, 2 }.OrderBy(item =>
{
Thread.Sleep(500);
Console.WriteLine(item);
return item;
});
Console.WriteLine(String.Join(", ", result));
輸出:
5
3
1
4
2
1, 2, 3, 4, 5
- 2 回答
- 0 關注
- 127 瀏覽
添加回答
舉報
0/150
提交
取消