在列表中返回具有最小属性的对象是否可能?
问题的出现原因是希望在列表中返回具有最小属性的对象,并且在响应中提到了解决方案的性能较差,从而表明性能也很重要。因此,问题是在性能和单次迭代中哪个更重要。
解决方法是使用循环遍历数据,并记住具有最低值X的对象。可以通过以下代码实现:
var arr = new List(); Test minimum = null; foreach (var x in arr) { if (minimum == null || x.X < minimum.X) { minimum = x; } } // minimum现在包含具有最低值X的对象。
这样可以在不使用Linq的情况下实现目标。通过循环遍历列表,逐个比较X的值,并更新minimum变量以保存具有最小值的对象。最终,minimum将包含具有最小属性的对象。
问题的出现原因:用户想要返回列表中具有最小属性的对象。
解决方法:使用"MoreLinq"中的"MinBy"方法。通过这个方法,可以轻松地找到具有最小属性的对象。使用这个方法,代码可以变为:Test a = arr.MinBy(item => item.X);
。此外,还可以在https://www.nuget.org/packages?q=id%3Amorelinq上找到更多相关的扩展。在许多项目中,我们经常使用MoreLinq中的扩展方法,它们非常值得使用。(最初由Jon Skeet和其他人编写)