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の例ではどのようなことがないことはグループがmultiCompGroupフィールド内のすべてのMultiCompDataにあり、foreachのとExpCompanyIdが空/ nullの場合CompanyDataの別のリストに追加します。まず、私は、クラスを紹介します。コード: - IEnumerableをしている(C#で、私は複製できない部分である)ExpCompanyId、VendorNumber、VendorNameおよびグループグループのforeachで
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)
は、GRPには、次のプロパティがあります。 C#でIEnumerableをmultiCompGroupsに追加することはできませんか?私が試してみました:私は、foreachのを取得するとき
var multiCompGroups = from m in multiCompDataJEs group by new {m.ExpCompanyiD, m.VendorNumber, m.VendorName} into multiGroups
multiGroupsが私のGRP値にIEnumerableをとして表示されません、私はまた、このようにそれを試してみた:
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をするときに私は3つのプロパティを表示しています。しかし、 "Into Group"(上記のVBコードのgrp.Group)はC#では表示されません。それは可能ですか?