2017-05-20 9 views
0

다음과 같이 목록을 필터링하고 싶습니다. 클래스가 있습니다 & 내 필터 문자열에있는 값을 필터링하려고합니다. 나는 for 루프로 결과를 얻었지만 for 루프가없는 방법이 필요하다.필터 일반 목록 (쉼표로 구분 된 값)

Public Class WorkStationDetails<br><br> 
    Property CountryId As Integer<br> 
    Property CountryName As String<br> 
    Property TotalWrkStn As Integer<br> 
    Property ExistingWrkStn As Integer<br> 
    Property RemainingWrkStn As Integer<br><br> 
End Class 

Dim WrkStnDtl As List(Of WorkStationDetails) 
Dim FilterWrkStnDtl As List(Of WorkStationDetails) 
Dim Numbers As String() 

Numbers = "1,5,6,2,9".Split(",") 

    For i As Integer = 0 To Numbers.Length - 1 
     FilterWrkStnDtl.AddRange(WrkStnDtl.FindAll(Function(p) (p.CountryId = Numbers(i)))) 
    Next 

참고 : 나는 SQL 서버에서 하위 쿼리처럼 그것을 달성하고자합니다.

답변

0

나는 "= 내가 VAR 번호처럼 쓰기에 의해,

var numbers = "1,5,6,2,9".Split(','); 
var selected = WrkStnDtl.Where(w => numbers.Contains(w.CountryId)).ToList(); 
+0

야"10 ".Split (", ")이 뭔가를하려는 생각하고 국가에서 1 그래서 작동이? – Rajan

+0

예, 작동합니다. 큰 따옴표를 쉼표로 한 줄로 변경해야합니다. "10". 분리 (',') –