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

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