C#ToList性能和替代方式

时间:2015-08-11 18:22:04

标签: c#

我有一个大字典和一个列表(myList)。只有在我的词典中有一个具有相同标题的项目时,我才想保留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();

1 个答案:

答案 0 :(得分:0)

嗯,HashSets可以优化字符串的不同,因为列表不需要排序Getting unique items from a list

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

    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();

希望这有帮助。

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