2017-04-06 64 views
0

我有以下代碼在foreach使用InLineAssignHelper更新兩個字段

de.Tbl_Summary.Where(Function(c) CBool(c.CPID = uPn AndAlso _ 
c.C_Year = cutoffDates.ActualClaimYear AndAlso _ 
c.C_Month >= cutoffDates.ActualClaimMonth _ 
)).ToList().ForEach(Function(r) InlineAssignHelper(r.TeamID, uTid)) 

其轉化並從C#示例適配。這工作得很好,但我現在需要的,所以我嘗試更新兩個字段...

de.Tbl_Summary.Where(Function(c) CBool(c.CPID = uPn AndAlso _ 
c.C_Year = cutoffDates.ActualClaimYear AndAlso _ 
c.C_Month >= cutoffDates.ActualClaimMonth _ 
)).ToList().ForEach(Function(r) InlineAssignHelper(r.TeamID, uTid), _ 
InlineAssignHelper(r.CostCentre, uCostCentre)) 

,因爲我得到了第二InLineAssignHelper下一個波浪線與錯誤

Error BC30057 Too many arguments to 'Public Overloads Sub 
ForEach(action As Action(Of Tbl_IndividualClaims))'. 

這怎麼能不工作我實現了一個ForEach,它將更新TblIndividualClaims中的2個字段?

感謝

UPDATE

這是VB轉換代碼InlineAssignHelper(從C#轉換)

Private Shared Function InlineAssignHelper(Of T)(ByRef target As T, ByVal value As T) As T 
     target = value 
     Return value 
    End Function 

回答

0

如果你絕對必須保持相同的格式,那麼它會結束像這樣:

.ForEach(Function(r) 
      InlineAssignHelper(r.TeamID, uTid) 
      InlineAssignHelper(r.CostCentre, uCostCentre) 
     End Function) 

P.S.在這種情況下使用Sub更有意義

+0

這給出錯誤無法推斷返回類型考慮添加'As'子句來指定返回類型 – Mych

+0

正確..使用'Sub'。你沒有返回任何東西 –

+0

我已經更新了我的問題,並添加了InlineAssignHelper代碼,它顯示函數正在返回一些東西。 – Mych

相關問題