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

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

使用 LINQ 刪除 List<object> 中的項(xiàng)目,其中 List<string> 中存在屬性

使用 LINQ 刪除 List<object> 中的項(xiàng)目,其中 List<string> 中存在屬性

C#
函數(shù)式編程 2022-10-23 10:19:20
這個(gè)問題與這個(gè)問題非常相似: Use LINQ to get items in a List<>, that are not in another List<>。但是這些差異足以讓我無(wú)法確定 LINQ 語(yǔ)法。我有兩個(gè)清單:List<Fubar> fewBarNewList<string> existingProviderIDs哪里Fubar看起來像:Class Fubar{    int FunbarId int {get; set;}    ....    ....    string ProviderID {get; set;}}現(xiàn)在,我想從內(nèi)部存在的fewBarNew任何實(shí)例中刪除.FewBarNew.ProviderIDexistingProviderIDs fewBarNew = fewBarNew.Where(f => !existingProviderIdList.Any(ep => ?????).ToList();
查看完整描述

1 回答

?
MM們

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

Any 使您能夠檢查集合中的任何項(xiàng)目是否與某個(gè)謂詞匹配。因此,您可以將謂詞定義為“如果任何項(xiàng)目與當(dāng)前項(xiàng)目匹配”:

fewBarNew.Where(f => !existingProviderIdList.Any(ep => ep == f.ProviderID));

但是,我認(rèn)為更清潔的方法是使用.Contains

var result = fewBarNew.Where(f => !existingProviderIDs.Contains(f.ProviderID));

然后,當(dāng)它執(zhí)行時(shí),O(n^2)您可以改用 aHashSet<string>來改進(jìn):

var existingProviderIDSet = new HashSet<string>(existingProviderIDs);
var result = fewBarNew.Where(f => !existingProviderIDSet.Contains(f.ProviderID));

當(dāng)HashSet'Contains執(zhí)行一個(gè)O(1)操作時(shí),這將在 中執(zhí)行O(n)


查看完整回答
反對(duì) 回復(fù) 2022-10-23
  • 1 回答
  • 0 關(guān)注
  • 118 瀏覽

添加回答

舉報(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)