我有对象的阵列中的每个对象具有3个客户端,每个客户端具有客户代码和客户机名称。我想用C#Linq按客户端代码分组不同的对象。具有相同名称的LINQ GROUPBY多个列(匿名类型不能具有相同名称的多个属性)
对象[0]:客户端 “pickupFrom” 有 “clientCode” 客户端 “loadAt” 具有 “clientCode” 客户端 “deliverTo” 有 “clientCode”
对象[1]:客户端 “pickupFrom” 具有“clientCode”客户端“loadAt”具有 “clientCode”客户端“deliverTo”有“clientCode”
欲组由这些客户端和获得具有一个物体上,因为这些客户端是相同的阵列。
使用LINQ我可以这样做:
Objects[] GroupedDistinct =
ungroupedObjects.GroupBy(line => new { line.pickupFrom.clientCode,
line.LoadAt.clientCode,
line.deliverTo.clientCode })
.Select(x => x.First())
.ToArray();
这里的问题是,通过这些参数时,GROUPBY,我无法通过clientCode超过一次,因为它是定义一个名为clientCode多串即使它不是来自同一个客户端对象。
错误是“一个匿名类型不能有多个同名的属性” 我知道你不能多次传递相同的字符串名称,但这些对象(客户端)是如何用clientCode完成的。 有没有办法解决这个问题?
你确定'object.pickupFrom.clientCode'吗?也许你的意思是'line.pickupFrom.clientCode'? –