あなたのロジックに大きな欠陥を持っている:
したがって、上記の例から、私は2つのオブジェクトのみ取得する必要があります。
1)CREATEDBY:1、GrantedTo:65、PatientID:48
を 2)CreatedBy:1、GrantedTo:66、PatientID:48
[...]
私はこのコードでは、オブジェクトの各固有グループから最初のコードを選択する必要があります。
はい、CreatedBy、GrantedTo、PatientIDでデータをグループ化できます。あなたが戻って得るもの
しかしはタイプAccess
の(合理的な)オブジェクトにすることはできません、それは各グループからの最初ではありません。
なぜですか?あなたのオブジェクトからすべてのデータを選択したい場合 - AccessID
、PermissionID
など - その属性にはどのような値が必要ですか?
例1):
AccesID
は238または240ですか。
PermissionID
は15または18である必要がありますか?
...
私はあなたがポイントを持っていると思います。
それでは、あなたが実際にやるべきことだけでなく、Access
オブジェクトとしてではなくどちらか匿名型または定義されたタイプとしてグループ化されたデータを選択することです。
匿名バージョン:
Dim distinct = From acc In access
Group By g = New With {Key .CreatedBy = acc.CreatedBy,
Key .GrantedTo = acc.GrantedTo,
Key .PatientID = acc.PatientID} Into Group
(Key
キーワードはここに必須です!)
今、あなたは別のオブジェクト/関数にこれらの個別の値を渡したい場合は、単一のparamaetersとして渡すことができます。
For Each value In distinct
foo.bar(value.g.CreatedBy, value.g.GrantedTo, value.g.PatientID)
Next
それともあなただけの3つのプロパティが含まれている自身の小さなクラスを作成します。 (私は時間がなくなっているので、この点を残していますが、それはまっすぐでなければなりません)。
EDITは試してみてください、次の(盲目的に入力された未検証):
Dim distinct = (From acc In access
Group By g = New With {Key .CreatedBy = acc.CreatedBy,
Key .GrantedTo = acc.GrantedTo,
Key .PatientID = acc.PatientID} Into Group
Select New Access With {.CreatedBy = g.CreatedBy,
.GrantedTo = g.GrantedTo,
.PateintID = g.PatientID}).ToList()
これがセットのみの3つのプロパティであなたにList(Of Access)
で新しい Accessオブジェクトを与える必要があります。
入手したいデータはありますか? – vipin
@vipinデータは、関数から入力パラメータとしてアクセス(アクセス)のリストとして渡されます – alwaysVBNET
このコードで取得しようとしているプロパティは何ですか? – vipin