簡體   English   中英

哪種語法有更好的性能?

[英]Which one of this syntaxs have better performance?

這種語法中哪一種在數據之間搜索具有更好的性能和速度?

第一種選擇:

this.Message = pageContentsli
    .Where(m => m.PName == "Message")
    .First()
    .ContentValue;

第二種選擇:

  foreach (PageContentsModel pc in pageContentsli)
  {
     if (pc.PName == "Message"){
        this.Message = pc.ContentValue;
        break;
      }
  }

與比較繼續之前,您應該移動的條件里面First是這樣的:

this.Message = pageContentsli.First(m => m.PName == "Message").ContentValue;

就性能而言,你應該看到沒有區別。 然而,在可讀性方面,修改后的LINQ版本獲勝。

首先讓我解釋兩種語法實際上是做什么的。

在第一個語法( where )中,它逐個處理元素,如果它捕獲m.PName="Message" ,它會將請求的值返回給this.Message ,然后處理停止。

第二個語法( foreach )中,它逐個處理元素,當它捕獲m.PName="Message" ,它將值分配給this.Message並再次開始處理元素的其余部分。

因此,盡管找到了值,但第二種語法並未停止,因此完成第一種語法需要更多時間。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM