c#列出了性能和替代方法

本文关键字:方法 性能 | 更新日期: 2023-09-27 18:07:18

我有一个大字典和一个列表(myList)。只有当我的字典中有具有相同Title的项时,我才希望将这些项保留在myList中。问题是titleList的初始化需要很长时间(2-3秒)。有更好的方法吗?

var dictionary = r.MyFunction.Where(a condition);
var titleList = dictionary.Select(x => x.Value.Title).ToList()
myList = productsTemp.Where(x => titleList.Contains(x.Title)).ToList();

c#列出了性能和替代方法

嗯,HashSets可以优化字符串的区别,因为列表不需要排序从列表中获取唯一项

,至于代码,它应该像这样工作:

    var items = r.MyFunction.Where(a condition).Select(p => p.Value.Title);
    var titleList = new HashSet<string>(items);
    myList = productsTemp.Where(x => titleList.Contains(x.Title)).ToList();

希望对你有帮助。

编辑:构造函数调用现在在外部。