我有一個(gè)列表,strings例如:myList 然后我還有一個(gè)對(duì)象列表,例如myDbObjectsList 對(duì)象看起來(lái)像這樣:public class MyDbObjects{ public string FirstName { get;set;} public string LastName {get;set;} public int ID {get;set;}}我想知道是否有任何兩個(gè)成員myList(上面的第一個(gè)),其中一個(gè)的值等于FirstName,另一個(gè)的值等于來(lái)自我的同一對(duì)象的LastName ?myDbObjectsList我用一種顯而易見的方式解決了這個(gè)問題,for-each通過它們并檢查它是否等于這個(gè),它是否等于那個(gè)等等,但我認(rèn)為應(yīng)該有比我聰明的人能想到的更有效的方法?
1 回答

長(zhǎng)風(fēng)秋雁
TA貢獻(xiàn)1757條經(jīng)驗(yàn) 獲得超7個(gè)贊
為了加快搜索速度,您可以將所有字符串放myList
入哈希集中:
var hashSet = new HashSet<string>(myList);
現(xiàn)在檢查myDbObjects
您是否可以使用任何對(duì)象Any
:
var isAny = myDbObjects.Any(x => hashSet.Contains(x.FirstName) && hashSet.Contains(x.LastName));
如果你想讓這些對(duì)象使用Where
var objectsThatMatch = myDbObjects .Where(x => hashSet.Contains(x.FirstName) && hashSet.Contains(x.LastName));
- 1 回答
- 0 關(guān)注
- 111 瀏覽
添加回答
舉報(bào)
0/150
提交
取消