【发布时间】:2011-08-09 14:31:12
【问题描述】:
我有一个自定义项数组,然后我有一个由函数返回的对象数组 object[]。这个对象数组确实是相同的客户端类型,但它作为对象类型的数组返回(我无法编辑这个方面)。
我尝试使用显式强制转换,但在运行时出现异常提示:无法将对象 [] 转换为客户端 []。
一旦我拥有两个数组,我的目标就是从一个列表中删除另一个列表中也存在的项目并建立一个联合,以便拥有一个唯一的列表。
var client = getClients().ToArray(); //Is an array of Clients[]
var normalSearch = getDuplicates().ToArray(); //Is an array of object[]
//This what I try to achieve,but being object, I cannot invoke "c.ContactId" (Line 4)
var uni = (from c in normalSearch
where !(from d in dupes
select d.ContactId)
.Contains(c.ContactId)
select c).ToArray();
我知道如果使用原始类型,Linq Union() 可以自动排除重复,否则必须使用自定义类型开发扩展。但我无法访问其余代码,因此无法更改其他地方的逻辑。
【问题讨论】: