我有一个类库,其中包含一个名为&#34; Club&#34;由两个WCF服务使用。每个方法都有一个具有相同返回类型的方法,一个Club-objects列表:List<Club>
。
当我在webform中调用这两个方法时,我得到了两个包含这些Club对象的列表但是我无法在Concat的帮助下合并这些列表,因为一个列表被视为serviceClient1。List<Club>
而另一个列表是被视为serviceClient2.List而不只是List<Club>
。
var resultService1 = service1Client.GetClubByName(search).ToList();
var resultService2 = service2Client.GetClubByName(search).ToList();
var endResult = resultService1.Concat(resultService2);
我尝试使用特定的对象类型进行转换和更改var但没有结果。我怎样才能修复它,因为我想在一个网格中显示两个服务的结果。
提前致谢!
答案 0 :(得分:1)
一种解决方案是创建一个包含所需属性的新匿名类型。
var endResult = resultService1
.Select(x => new { x.Prop1, x.Prop2})
.Concat(resultService2
.Select(x => new { x.Prop1, x.Prop2}));
答案 1 :(得分:1)
嗯,它们不一样(命名空间+类名)。并且它们由不同服务返回的事实也“表明”它们不是“相同的”。即使它们今天具有相同的形状(属性列表),也不能保证它们会很快改变(你控制服务吗?)。
话虽如此,您可以通过创建客户端的扩展方法来解决这个问题,以便从一个Club类转换为另一个。或者手动转换它们(循环或linq)。