1
是否有可能創建一個MergeTables方法,如下所示,在編譯時不知道要連接的字段的字段類型?LINQ加入兩個數據表 - 在運行時定義字段類型?
Private Function MergeTables(ByVal dtA As DataTable, _
ByVal dtB As DataTable, _
ByVal fieldA As String, _
ByVal fieldB As String, _
ByVal fieldAType As ???, _
ByVal fieldBType As ???)
Dim test = (From a In dtA.AsEnumerable() _
Join b In dtB.AsEnumerable() _
On a.Field(Of ???)(fieldA) _
Equals b.Field(Of ???)(fieldB) _
Select New With _
{ _
'Specify fields here
}).ToList()
Return test
End Function
我試圖清理其中有許多LINQ查詢,只有柱略有不同類名稱和字段類型。將它們放在一邊而不是鞏固並將參數傳遞給一種方法是更好的做法嗎? – TimeBomb006
重複代碼總是更好,因此是將類似方法合併爲一個是重構過程的常見部分。 – MarcinJuraszek
哦,我明白你的意思了,我已經在帖子中排除了「(Of T)」。最後一個問題 - 我有點過頭了。我將如何初始化'Func(Of DataRow,T)'變量?我發現我可以創建類似'Dim test As Func(Of DataRow,String)',但我不確定如何指定該字段。我應該考慮的任何資源?謝謝你的幫助! – TimeBomb006