異なる値を持つ同じタイプの 2 つのオブジェクトがあります。
public class Itemi
{
public Itemi()
{
}
public int Prop1Min { get; set; }
public int Prop1Max { get; set; }
public int Prop2Min { get; set; }
public int Prop2Max { get; set; }
public int Prop3Min { get; set; }
public int Prop3Max { get; set; }
...................................
public int Prop25Min { get; set; }
public int Prop25Max { get; set; }
}
次に、このタイプの 2 つのオブジェクトをインスタンス化し、それらのプロパティにいくつかの値を追加します。
Itemi myItem1 = new Itemi();
myItem1.Prop1Min = 1;
myItem1.Prop1Max = 4;
myItem1.Prop2Min = 2;
myItem1.Prop2Max = 4;
myItem1.Prop3Min = -1;
myItem1.Prop3Max = 5;
.............................
myItem1.Prop25Min = 1;
myItem1.Prop25Max = 5;
Itemi myItem2 = new Itemi();
myItem2.Prop1Min = 1;
myItem2.Prop1Max = 5;
myItem2.Prop2Min = -10;
myItem2.Prop2Max = 3;
myItem2.Prop3Min = 0;
myItem2.Prop3Max = 2;
................................
myItem2.Prop25Min = 3;
myItem2.Prop25Max = 6;
この比較を行うための最良かつ最速の方法は何ですか:
- myItem1 から各プロパティを取得し、Prop1-25 の最小値と最大値の値が myItem2 Prop1-25 の最小値と最大値の範囲内にあるかどうかを確認します
例:
myItem1.Prop1Min = 1
myItem1.Prop1Max = 4
myItem2.Prop1Min = 1
myItem2.Prop1Max = 5
mtItem1 Prop1 の最小値と最大値が myItem2 の最小値と最大値の範囲内にあるため、これは True です。
条件はすべてのプロパティ間で AND にする必要があるため、最後に 25 個のプロパティすべてをチェックした後、それらすべてが 2 番目のオブジェクトの範囲内にある場合は true を返します。
従来のif-else以外のLinqまたは他のアルゴリズムを使用してこれを行う高速な方法はありますか?