2017-01-25 5 views
0

そのインデックスがサブリストの最小値を持つインデックスを検索します。 私はこのようなクラス名の部分問題があります。サブリストCの最小値を持つインデックスを検索します。

public class Subproblem 
{ 
    public double[,] x { get; set; } 
    public double ReducedCost { get; set; } 
} 

を、私は低コストの最小値を持つ部分問題のインデックスを見つけたいです。

var sub = new List<Subproblem>(); 
Subproblem s = new Subproblem(); 
s.x = new double[DC1, DC1]; 
for (int m = 0; m < M; ++m) 
{ 
    s.ReducedCost = model.ObjVal; 
    for (int i = 0; i < DC1; ++i) 
    { 
    for (int j = 0; j < DC1; ++j) 
    { 
    s.x[i, j] = x[i, j].X; 
    } 
    } 
    sub.Add(s); 
} 
double minRC = sub.Min(a => a.ReducedCost); 
int minRCIndex = sub.IndexOf(minRC); 

最後の行はまだエラーですが、解決方法はわかりません。

+0

をごエラーが何であるかを明確にしてください。 – teynon

+0

@Tom int minRCIndex = sub.IndexOf(minRC);この構文はまだエラーです(赤い下線付き) –

+0

[dotnetfidlde](http://dotnetfiddle.net/)にサンプルを追加できますか? – aloisdg

答えて

0

のタイプはdoubleですが、IndexOf()のパラメータタイプはSubproblemであるため、このエラーが発生します。

あなたはFindIndex()を使用する必要があります。一つだけに

double minRC = sub.Min(a => a.ReducedCost); 
int minRCIndex = sub.IndexOf(minRC); 

int minRCIndex = sub.FindIndex((i) => i.ReducedCost == minRC); 

また、あなたはこれらの2行を変更することができます

int minRCIndex = sub.FindIndex(i => i.ReducedCost == sub.Min(a => a.ReducedCost)); 
+0

ありがとう、それは働いている! –

関連する問題