コレクションからすべてを選択する場所ID in List

c# dapper list select

質問

私はちょうどラムダ式を使うことを学んでいて、数日前にDapperに向けられました。私はいくつかのアカウントのメンテナンスのために選択されるユーザー名をlistViewに設定するアプリケーションに取り組んでいます。私は並べ替えの1つの部分に問題があります:

  • 私は、Dapperクエリを使用してオブジェクトのコレクションを取得し、それを変数Global.allUsers割り当てGlobal.allUsers
  • すでに使用されているIDのリスト( List<int> migrated )があるので、 listViewに表示する必要はありません
  • 私はすべての私のユーザーのリストを次のように使っています:

    var  uniqUsers = Global.allUsers.OrderBy(n => n.lastNames).GroupBy(q => q.salesIDs);
    

移入するにはlistView移行していないユーザーだけで、私はせずにユーザーのみを選択する必要がq.salesIDsmigrated 。何らかのforeach使わずにこれを行うことができるのかどうかは分かりません。それを選択する方法があるように思えます。

確かに、私はuniqUsersとにかくループしてuniqUsersて、 listViewに各オブジェクトのプロパティの値を設定しています。現在のIDがmigratedれているかどうかを確認する文を追加することはできますが、select文を使用して自分自身でステップを保存できることを私に知らせるだけです。

私はこのような何かを考えている:

 var  uniqUsers = Global.allUsers.Where(i => i.salesIDs not in migrated).OrderBy(n => n.lastNames).GroupBy(q => q.salesIDs);

しかし、 i => i.salesIDs not in migratedていないため、それを切断していません。

受け入れられた回答

これはあなたが必要とするものです:

var uniqUsers = allUsers.Where(x => migrated.Contains(x.salesIDs))
                        .OrderBy(y => y.lastNames)
                        .GroupBy(z => z.salesIDs).SelectMany(v => v).ToList();

salesIDmigratedれたすべてのユーザーを取得migrated 、次にlastNamesで注文migrated 、次にsalesIDグループ化しsalesIDSelectMany()は要素をシーケンスにToList()ToList()は結果を列挙します。



ライセンスを受けた: CC-BY-SA with attribution
所属していない Stack Overflow
ライセンスを受けた: CC-BY-SA with attribution
所属していない Stack Overflow