繁体   English   中英

C#ToList性能和替代方法

[英]C# ToList performance and alternative ways

我有一本大字典和一个清单(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();

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

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

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

希望这可以帮助。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM