2010-08-04 108 views
2

有人可以幫我在C#linq中重寫equals運算符嗎?LINQ等於覆蓋

這就是問題所在:

var temp = 
from t1 in table1 
join t2 in table2 on t1.column1 **equals** t2.column2 
select t1.column4; 

值得一提的是,t1.column1t2.column2實際上是一些特定類型。如果有人需要更多信息,請告訴我。

+1

小心重寫這樣的操作符...你forgott提及你的問題。這些列是特定類型還是UDT? – 2010-08-04 06:37:40

+0

你是說他們是不同的類型?只需將它們轉換爲相同的匹配類型,例如「on(int?)t1.column1 equals(int?)t2.column2」 – KristoferA 2010-08-04 06:37:55

回答

4

那麼,你還沒有解釋這是否是LINQ to Object,LINQ to SQL等......但假設它是LINQ to Objects,只需要覆蓋相關類型中的EqualsGetHashCode方法。

如果它是LINQ to SQL,那就相當困難 - 就我所知,您無法指定自定義比較。

如果你可以提供更多關於你想要達到的細節的信息,它會讓你更容易幫助你。