第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

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

Linq to object Multiple Where 短路評估

Linq to object Multiple Where 短路評估

C#
藍山帝景 2022-06-12 16:20:09
當在 Linq to object 表達式中包含多個 Where 子句時,它們會像 && 運算符一樣評估短路嗎?含義將僅在條件 A 返回 true 時評估條件 B例如collection.Where(condition1).Where(condition2)(不談論即使使用 && 運算符short-circuiting-in-linq-where也不會這樣做的 Linq to sql )
查看完整描述

1 回答

?
三國紛爭

TA貢獻1804條經(jīng)驗 獲得超7個贊

讓我們再看一些代碼。我們將測試這兩種情況:

  1. 首先,我們將使用兩個 if 語句來測試 &&

  2. 我們將使用兩個 Where 調(diào)用

所以:

var elements = new List<string>(new[] { "A", "B", "C" });


Console.WriteLine("C#'s &&");


elements.Where(x => {

    if (x == "A")

    {

        Console.WriteLine("ConditionA is true");

        if (1 == 1)

        {

            Console.WriteLine("ConditionB is true");

            return true;

        }


        Console.WriteLine("ConditionB is false");

    }


    Console.WriteLine("ConditionA is false");


    return false;           

}).ToList();


Console.WriteLine();

Console.WriteLine("Double Linq.Where");


elements.Where(x => {

    if (x == "A")

    {

        Console.WriteLine("ConditionA is true");

        return true;

    }


    Console.WriteLine("ConditionA is false");

    return false;           

})

    .Where(x => {

        if (1 == 1)

        {

            Console.WriteLine("ConditionB is true");

            return true;

        }


        Console.WriteLine("ConditionB is false");

        return false;

    }).ToList();

結果如下:


C#'s &&

ConditionA is true

ConditionB is true

ConditionA is false

ConditionA is false


Double Linq.Where

ConditionA is true

ConditionB is true

ConditionA is false

ConditionA is false

正如你所看到的,它是一樣的。未通過 ConditionA 的元素不會針對 ConditionB 進行測試。

你可以在這里試試這個:https ://dotnetfiddle.net/vals2r


查看完整回答
反對 回復 2022-06-12
  • 1 回答
  • 0 關注
  • 122 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網(wǎng)微信公眾號