我有一个列表,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 关注
- 64 浏览
添加回答
举报
0/150
提交
取消