Dan*_*inu 2 c# linq optimization time-complexity
我正在尝试优化此代码:
foreach (string id in ids)
{
MyClass x = myDictionary[id];
foreach (var map in Maps)
{
if ( x.id == map.SourceId || x.id == map.DestionationId)
{
//add id to a hashset
}
}
}
Run Code Online (Sandbox Code Playgroud)
如果ids.count为1600且Maps.Count为300 000,则需要大约10分钟才能处理.
我试过LINQ,但结果不是很好:
var allIds = Maps.select(map => map.SourceId).Union(Maps.select(map => map.DestinationID)).Distinct();
var toAdd = from id in Ids
join mapId in AllIds on id equals mapid
select id;
//create hashset based on toAdd collection.
Run Code Online (Sandbox Code Playgroud)
任何人都可以指出我更好的解决方案,如果可能解释为什么linq在这种情况下不是更快?
谢谢
归档时间: |
|
查看次数: |
169 次 |
最近记录: |