我有对象的两个不同的列表,其中一个一个IQueryable组(卷成的阵列),而另一列表集。 在这两组对象共享一个称为ID字段; 每个在所述第二组中的对象的将匹配所述第一组中的对象,但并不一定反之亦然。 我需要能够同时处理组(匹配和不匹配)。 两个集合的大小是在这种情况下的对象300和350之间(作为参考,对于在所述第二组中的对象生成的XML,通常不大于7K以上,所以也许一半认为到该尺寸的三分之二的实际存储器通过使用在每个组中的每个对象)。
我有它目前设立的方式是一个for循环迭代是通过IQueryable的集合的数组表示,使用LINQ语句来查询的列表中匹配的记录集。 这需要太多的时间; 我跑的RAM 10GB酷睿i7和它采取的任何地方从10秒到2.5分钟,以匹配和比较的对象。 任务管理器不显示任何巨大的内存使用情况 - 下一个25MB的树荫。 我的系统线程没有被任何征税。
有没有一种方法或算法,可以让我以更快的步伐配对对象中的每个设置一个时间,从而迭代通过对和无与伦比的对象? 这组对象只是8000+这一计划的一小部分将不得不通过每一天,一旦它开始运行咀嚼...
编辑:这是我在实际运行的代码...
for (int i = 0; i < draftRecords.Count(); i++)
{
sRecord record = (from r in sRecords where r.id == draftRecords.ToArray()[i].ID select r).FirstOrDefault();
if (record != null)
{ // Do stuff with the draftRecords element based on the rest of the content of the sRecord object