我有一个名为Rate[]
的对象。这是来自返回名为Rate[]
的Object的Web Service。 Rate[]
的XML如下所示:
<b:Rate>
<b:Deductible>0</b:Deductible>
<b:FormType>AO</b:FormType>
<b:PlanCode>843</b:PlanCode>
<b:Miles>0</b:PlanMiles>
<b:PlanTerm>1</b:PlanTerm>
<b:Prefix>PR</b:Prefix>
<b:Retail>269</b:Retail>
<b:RiskPlan>RPR1</b:RiskPlan>
<b:Term>1/3</b:Term>
</b:Rate>
<b:Rate>
<b:Deductible>0</b:Deductible>
<b:FormType>AO</b:FormType>
<b:PlanCode>843</b:PlanCode>
<b:Miles>0</b:PlanMiles>
<b:PlanTerm>2</b:PlanTerm>
<b:Prefix>PR</b:Prefix>
<b:Retail>269</b:Retail>
<b:RiskPlan>RPR1</b:RiskPlan>
<b:Term>1/3</b:Term>
</b:Rate>
<b:Rate>
<b:Deductible>0</b:Deductible>
<b:FormType>AO</b:FormType>
<b:PlanCode>843</b:PlanCode>
<b:Miles>0</b:PlanMiles>
<b:PlanTerm>3</b:PlanTerm>
<b:Prefix>PR</b:Prefix>
<b:Retail>269</b:Retail>
<b:RiskPlan>RPR1</b:RiskPlan>
<b:Term>1/3</b:Term>
<b:VehicleClass>1</b:VehicleClass>
</b:Rate>
<b:Rate>
<b:Deductible>0</b:Deductible>
<b:FormType>AO</b:FormType>
<b:PlanCode>843</b:PlanCode>
<b:Miles>0</b:PlanMiles>
<b:PlanTerm>4</b:PlanTerm>
<b:Prefix>PR</b:Prefix>
<b:Retail>269</b:Retail>
<b:RiskPlan>RPR2</b:RiskPlan>
<b:Term>4/6</b:Term>
</b:Rate>
<b:Rate>
<b:Deductible>0</b:Deductible>
<b:FormType>AO</b:FormType>
<b:PlanCode>843</b:PlanCode>
<b:Miles>0</b:PlanMiles>
<b:Term>5</b:PlanTerm>
<b:Prefix>PR</b:Prefix>
<b:Retail>269</b:Retail>
<b:RiskPlan>RPR2</b:RiskPlan>
<b:Term>4/6</b:Term>
</b:Rate>
<b:Rate>
<b:Deductible>0</b:Deductible>
<b:FormType>AO</b:FormType>
<b:PlanCode>843</b:PlanCode>
<b:Miles>0</b:PlanMiles>
<b:PlanTerm>6</b:PlanTerm>
<b:Retail>269</b:Retail>
<b:RiskPlan>RPR2</b:RiskPlan>
<b:Term>4/6</b:Term>
</b:Rate>
... etc ..
<b:Rate>
<b:Deductible>0</b:Deductible>
<b:FormType>AO</b:FormType>
<b:PlanCode>843</b:PlanCode>
<b:Miles>0</b:PlanMiles>
<b:PlanTerm>84</b:PlanTerm>
<b:Retail>269</b:Retail>
<b:RiskPlan>RPR2</b:RiskPlan>
<b:Term>73/84</b:Term>
</b:Rate>
这些价格具有相同的价格。
我不想显示1 ... 2 ... 3 ... 4 ...一直到84个术语,我想使用费率中的<Term>
对这些费率进行分组。
示例:将所有<Term>1/3</Term>
分组在一起。
注意:也有不同的<RiskPlan>
:RPR1,RPR2和RPR3也需要考虑。
我目前有:
var ratesGroupBy = from r in rates.GroupBy(r => new { r.Term }).Select(g => g.First())
select r;
我的问题是:
这只返回RPR1和唯一条款。它还需要考虑不同的RiskPlans及其独特的条款。
RPR1 => 1/3, 4/6, 7/9, 10/12, etc...
RPR2 => 1/3, 4/6, 7/9, 10/12, etc...
RPR3 => 1/3, 4/6, 7/9, 10/12, etc...
答案 0 :(得分:0)
var ratesGroupBy = rates.GroupBy(x => x.RiskPlan)
.Select(g => new { RiskPlan = g.Key, Terms = g.Select(x => x.Term).Distinct().ToList() })
.ToList();
返回具有string RiskPlan
和List<string> Terms
属性的匿名类型实例列表。