2010-08-04 2 views
2

Может ли кто-нибудь помочь мне переопределить оператор equals в C# linq?linq equals override

Это проблема:

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

стоит отметить, что t1.column1 и t2.column2 на самом деле некоторые конкретные типы. Если кому-то нужна дополнительная информация, пожалуйста, дайте мне знать.

+1

Осторожно с переопределением таких операторов ... вы не хотите упоминать о своей проблеме. Являются ли столбцы конкретным типом или UDT? –

+0

Вы говорите, что они разные типы? Просто добавьте их к одному и тому же типу соответствия, например. "on (int?) t1.column1 равно (int?) t2.column2" – KristoferA

ответ

4

Ну, вы не объяснили, является ли это LINQ для Object, LINQ to SQL и т. Д., Но при условии, что это LINQ to Objects, вам просто нужно переопределить методыи GetHashCode в соответствующих типах.

Если это LINQ to SQL, это довольно сложно - вы не можете указать произвольное сравнение, насколько мне известно.

Если вы могли бы дать более подробную информацию о том, чего вы пытаетесь достичь, это намного облегчит вам помощь.

Смежные вопросы