1
我想將VB中的一些代碼轉換爲C#,並且在使用此特定的LINQ查詢時遇到了極其困難的時間。通過它在LINQ查詢中無法獲得繼承類的IEnumerable
Public Class CompanyData
Property CompanyID As String = ""
Property VendorNumber As String = ""
Property VendorName As String = ""
End Class
Public Class MultiCompData
Inherits CompanyData
Property ExpCompanyId As String = ""
End Class
然後在VB例如它做什麼是組中的所有成MultiCompData在multiCompGroup領域的foreach並添加CompanyData的不同列表,如果ExpCompanyId爲空/空:首先,我會告訴類。代碼:
Sub ProcessMultiCompData(multiCompDataJEs As IEnumerable(Of MultiCompData), ByRef multiCompData As List(Of CompanyData), ByRef undeterminedDists As List(Of CompanyData))
Dim multiCompGroups =
From m In multiCompDataJEs
Group m By m.ExpCompanyId,
m.VendorNumber,
m.VendorName
Into Group
For Each grp In multiCompGroups
If grp.ExpCompanyId = "" Then
undeterminedDists.AddRange(grp.Group)
在foreach,GRP具有以下屬性 - ExpCompanyId,VendorNumber,VENDORNAME和組(這是在C#我不能複製的部分)基團是一個IEnumerable。是不是可以將C#中的IEnumerable添加到multiCompGroups?我曾嘗試:
var multiCompGroups = from m in multiCompDataJEs group by new {m.ExpCompanyiD, m.VendorNumber, m.VendorName} into multiGroups
multiGroups在我的GRP值不顯示爲一個IEnumerable當我到了的foreach,我也試着這樣說:
var multiCompGroups = multiCompDataJEs.GroupBy(x => new {m.ExpCompanyId, m.VendorNumber, m.VendorName}).Select(y => new {y.Key.ExpCompanyId, y.Key.VendorNumber, y.Key.VendorName}).ToList();
兩者都產生一樣的東西。我有三個屬性出現在我做grp時。但「Into Group」(上面VB代碼中的grp.Group)不會在C#中顯示。它甚至有可能做到嗎?