【发布时间】:2011-02-27 09:32:27
【问题描述】:
我有一个对象集合,每个对象都有一个 int Frame 属性。给定一个 int,我想在集合中找到具有最近 Frame 的对象。
这是我目前正在做的事情:
public static void Search(int frameNumber)
{
var differences = (from rec in _records
select new { FrameDiff = Math.Abs(rec.Frame - frameNumber), Record = rec }).OrderBy(x => x.FrameDiff);
var closestRecord = differences.FirstOrDefault().Record;
//continue work...
}
这很好,一切都很好,除了我的收藏中有 200,000 件物品,而且我经常调用这个方法。有没有一种相对简单、更有效的方法来做到这一点?
【问题讨论】:
-
这只是 LINQ to a collection of objects 还是 LINQ to SQL?
-
“我有一个对象的集合”,问题的第一句话。 ;)
标签: c# linq optimization search performance