问候!
我正在寻找一种方法来搜索最能满足我标准的对象的集合.由于我必须经常这样做,所以我正在研究如何使用LINQ执行查询,但是找不到一种简单的方法来做到这一点并不会“浪费时间”.
功能实现将是:
collection.OrderByDescending(f => FitFunction(f)).First()
但这似乎不必要地进行排序.我真的只需要线性扫描. Min LINQ函数返回最佳拟合,而不是产生最佳拟合的对象,因此似乎没有用.
为清楚起见,我传统上会编写非LINQ代码(并且这样做了很多次):
T best; float bestFit = something very low; foreach (T ob in collection) { float fit = FitFunction(ob); if (fit > bestFit) { bestFit = fit; best = ob; } } return best;
我想我可能只是制作自己的扩展方法来做到这一点;但在我看来,已经有一种方法可以在LINQ中做到这一点.
谢谢!