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

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

簡(jiǎn)化迭代到 linq 查詢

簡(jiǎn)化迭代到 linq 查詢

C#
大話西游666 2023-09-16 17:03:22
我目前正在開發(fā) .NET 4.7.1 應(yīng)用程序。給定一個(gè) for 循環(huán)來(lái)比較 2 個(gè)列表并檢查是否有任何 Id 已更改。如果列表 1 中的任何 Id 與列表 2 中的任何 Id 不同,我需要返回 null,否則返回列表 2。我目前通過簡(jiǎn)單的迭代解決了這個(gè)問題。盡管如此,我想知道是否可以使用 LINQ 語(yǔ)句更輕松地解決這個(gè)問題。var list1 = new List<string>{  "A",  "B",  "C"};var list2 = new List<string>{  "A",  "C",  "B"};private List<string> Compare(){ if (list1 != null) {    for (int i = 0; i < list1.Count; i++)    {        if (list1[i] != list2[i])        {            return list2;        }    }    return null; } return list2;}您知道如何解決這個(gè)問題而不是使用 for 循環(huán),而是使用 LINQ 語(yǔ)句嗎?謝謝!
查看完整描述

2 回答

?
楊魅力

TA貢獻(xiàn)1811條經(jīng)驗(yàn) 獲得超6個(gè)贊

這是 For 循環(huán)的一種 linq 替代方案


   private List<string> Compare()

    {

        if (list1 == null) return list2;

        if (list1.Where((x, i) => x != list2[i]).Any())

        {

            return list2;

        }


        return null;

    }



查看完整回答
反對(duì) 回復(fù) 2023-09-16
?
一只名叫tom的貓

TA貢獻(xiàn)1906條經(jīng)驗(yàn) 獲得超3個(gè)贊

您可以使用Zip將項(xiàng)目分組在一起來(lái)比較它們,然后All確保它們相同:


private List<string> Compare()

{


 if (list1 == null) return list2;

 if (list1.Count != list2.Count) return null;


 bool allSame = list1.Zip(list2, (first, second) => (first, second))

                     .All(pair => pair.first == pair.second);



 return allSame ? list2 : null;

}

注意:該Zip函數(shù)用于將兩個(gè)項(xiàng)目放入一個(gè)元組中(第一個(gè),第二個(gè))。


您還可以使用SequenceEqual


private List<string> Compare()

{


 if (list1 == null) return list2;


 bool allSame = list1.SequenceEqual(list2);      

 return allSame ? list2 : null;

}


查看完整回答
反對(duì) 回復(fù) 2023-09-16
  • 2 回答
  • 0 關(guān)注
  • 152 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)