我有一个对象列表,我希望将其减少到仅包含在单独列表中的属性的对象.
List1是简单字符串的列表.
List2是包含两个字符串属性的对象列表; A和B.
应删除List1中不存在A 和 B的所有项目.
这个过程非常依赖于时间,需要尽可能快.目前我有以下实施方案;
var List1 = new List() {"Around", "9000", "strings"}; //List of about 9000 strings var List2 = databaseList.ToList(); //Around 2.5 million objects var reducedList = new HashSet
此过程大约需要7秒钟才能完成,这对我目前的要求来说太慢了.
我尝试使用LINQ运行它,但是给出相同的结果,大约7秒.
var reducedList = List2.Where(r => List1.Contains(r.A)).Where(r => List1.Contains(r.B)).ToList();
有什么建议我可以做些什么来改善这个?
编辑: 我无法在SQL方面做到这一点,因为我需要比较的9000个字符串不能"翻译"成SQL查询,但会超过我们允许的允许2100输入参数SQL Server安装程序.