我有以下 XML 文件:
<Price id="70">
<Side id="111" option="1" startPrice="3.5"/>
<Side id="222" option="2" startPrice="1.25"/>
</Price>
<Price id="20">
<Side id="333" option="1" startPrice="1.25"/>
<Side id="444" option="2" startPrice="3.25"/>
</Price>
<Price id="22">
<Side id="555" option="1" startPrice="1.25"/>
<Side id="666" option="2" startPrice="3.25"/>
</Price>
<Price id="23">
<Side id="777" option="1" startPrice="2.25"/>
<Side id="888" option="2" startPrice="3.25"/>
</Price>
<Price id="24">
<Side id="999" option="1" startPrice="2.25"/>
<Side id="000" option="2" startPrice="3.25"/>
</Price>
我想根据其他选项计算每个选项并进行以下计算:
1 / ((1 / startPrice) + (1 / startPrice))
如果以下计算大于或等于1,我想获取 Side ID。
例如:
1 / ((1 / 3.5) + (1 / 1.25))
等于0.9210526315789471,所以它与我无关。
XML 有时有 3 个面,有时(如上面的示例)它有 2 个面。
我必须(1/2/3)
对照其他选项检查每个选项,所以如果我检查选项 1,我必须对照选项 2 或 3(如果存在)检查它,如果我检查选项 2,我必须对照选项 1 检查它和3等。
所以,只是一个总结,逻辑应该是这样的:
Check Side ID 111 against `222, 444, 666, 888, 000.`
等结束了,check Side 222 against 111, 333, 555, 777, 999.
如果有多个选项返回高于 1 的结果,我想全部获取,例如:
111 and 444
111 and 666
222 and 777
等等
我想用 LINQ 来做,但它似乎是非常复杂的逻辑,所以这里需要你的帮助。