亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

OrderBy 可以為一個元素多次評估委托嗎?

OrderBy 可以為一個元素多次評估委托嗎?

C#
慕哥9229398 2022-12-24 13:48:33
我的一個朋友說,在 Linq 中作為參數傳遞給 OrderBy() 的委托函數只對每個元素求值一次??紤]以下情況:var list2 = list.OrderBy(item => item.ComputationallyExpensiveFunction()).ToList();真的ComputationallyExpensiveFunction()定義為只對列表中的每個元素評估一次,還是在某些情況下可以對同一項目調用多次?
查看完整描述

2 回答

?
慕田峪4524236

TA貢獻1875條經驗 獲得超5個贊

OrderBy為每個項目調用一次委托,并緩存結果。

我在文檔中找不到對這種行為的提及,所以我不認為它是指定的,但實現確實這樣做了(參見參考資料)。


查看完整回答
反對 回復 2022-12-24
?
元芳怎么了

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


查看完整回答
反對 回復 2022-12-24
  • 2 回答
  • 0 關注
  • 127 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號