【发布时间】:2015-11-04 02:50:45
【问题描述】:
我有一本大字典和一个列表 (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();
【问题讨论】:
-
这可能会增加一些加速的
var titleList = new HashSet<string>(dictionary.Select(x => x.Value)) -
你确定不是
myList的创作需要时间吗? -
您是否尝试删除第二行中对
ToList方法的调用?我认为没有必要,在下一行你将使用IEnumerable<T>.Contains方法 -
您在创建列表时要达到的目标时间是多少?
-
您的示例代码不完整。请提供完整的编译示例代码。例如。什么是 MyFunction (属性?什么类型的?)。没有这些信息,所有答案都只是猜测。
标签: c#