我有兩個大小相等的列表。兩者都包含數字。第一個列表生成,第二個列表是靜態的。由於我有很多生成的列表,我想知道哪一個是最好的。對我來說,最好的名單是最符合參考的名單。因此,我計算每個位置的差異並加起來。構建總和比循環更有效的方法
下面是代碼:
/// <summary>
/// Calculates a measure based on that the quality of a match can be evaluated
/// </summary>
/// <param name="Combination"></param>
/// <param name="histDates"></param>
/// <returns>fitting value</returns>
private static decimal getMatchFitting(IList<decimal> combination, IList<MyClass> histDates)
{
decimal fitting = 0;
if (combination.Count != histDates.Count)
{
return decimal.MaxValue;
}
//loop through all values, compare and add up the result
for (int i = 0; i < combination.Count; i++)
{
fitting += Math.Abs(combination[i] - histDates[i].Value);
}
return fitting;
}
是否有可能是一個更優雅,但更重要,更有效的方式來獲得所需的款項?
在此先感謝!
如果要比較的列表數量很大,那麼因爲您只需要最佳匹配,您可以使用「最佳沙發」作爲參數的差異,並在當前列表有較大差異時停止比較。 –