컬렉션에서 모두 선택 위치 ID in List

c# dapper list select

문제

나는 방금 람다 식을 사용하는 법을 배우고 며칠 전 Dapper로 향했다. 일부 계정 유지 관리를 위해 사용자 이름을 listView 채우는 앱을 listView 있습니다. 정렬의 한 부분에 문제가 있습니다.

  • Dapper 쿼리를 사용하고 Global.allUsers 변수에 할당하는 객체 컬렉션을 얻고 있습니다.
  • 이미 사용 된 ID List<int> migrated ( List<int> migrated )이 있으므로 listView 에 표시 할 필요가 없습니다.
  • 다음을 사용하여 모든 사용자 목록을 얻습니다.

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

채우기 위해 listView 마이그레이션되지 않은 사용자 만에, 나는이없는 사용자 만 선택해야 q.salesIDs 에서 migrated . 나는 foreach 어떤 종류를 사용하지 않고 이것을 할 수 있는지 / 알아낼 수 없다. 그것을 선택하는 방법이 있어야하는 것처럼 보입니다.

허락하신다면, 저는 uniqUsers 반복하면서 각 객체의 속성에서 listView 를 채 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 모든 사용자를 salesID 다음 lastNames 별로 주문한 다음 salesID 별로 salesID 합니다. SelectMany() 는 요소를 시퀀스에 투영하고 ToList() 는 결과를 열거합니다.



아래 라이선스: CC-BY-SA with attribution
와 제휴하지 않음 Stack Overflow
아래 라이선스: CC-BY-SA with attribution
와 제휴하지 않음 Stack Overflow