此問題已在SO上以其中一種方式提出,但不是這樣。我剛剛過來了一個非常基本的問題,我正在尋找一個統計解決方案:-) 我得到了具有兩個整數屬性的對象列表。現在我想查找列表中所有對象的兩個屬性的最大值。
我想出了三種解決方案:在列表中查找兩個(或更多)屬性的最大值
第一種方法:
int max = Math.Max(list.Max(elem => elem.Nr), list.Max(elem => elem.OtherNr));
第二種方法:
public int Max(List<Thing> list)
{
int maxNr = 0;
foreach (var elem in list)
{
if (elem.Nr > maxNr)
maxNr = elem.Nr;
if (elem.OtherNr > maxNr)
maxNr = elem.OtherNr;
}
return maxNr;
}
第三種方法是通過兩個屬性來進行排序,然後只取首先進入並獲得一個或另一個財產。
我想找到最快的方法來做到這一點。因此,我喜歡第二個帖子(從性能角度來看)。儘管第一個更短,但你必須經歷兩次。
其他解決方案?
它太慢了嗎?其實第一個看起來對我而言在可讀性和效率方面都很好。我假設沒有結構變化,你不會更快。 –
不,我只是想知道什麼最快的算法是這個 – derape