我有两个具有不同值的相同类型的对象:
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; }
}
现在我实例化两个这种类型的对象并向它们的属性添加一些值。
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 Min 和 Max 的值是否在 myItem2 Prop1-25 Min 和 Max 的值范围内
例子:
myItem1.Prop1Min = 1
myItem1.Prop1Max = 4
myItem2.Prop1Min = 1
myItem2.Prop1Max = 5
这是真的,因为 mtItem1 Prop1 min 和 max 在 myItem2 min 和 max 的范围内。
条件应该是 AND 在所有属性之间,所以最后在我们检查所有 25 个属性之后,如果它们都在第二个对象的范围内,我们返回 true。
除了传统的 if-else 之外,有没有使用 Linq 或其他算法的快速方法?