2017-05-20 6 views
0

Je veux filtrer la liste de contacts ci-dessous. J'ai une classe & Je veux filtrer les valeurs de qui sont dans ma chaîne de filtre. J'ai obtenu mon résultat par une boucle for mais j'ai besoin d'un chemin sans boucle.Liste générique des filtres (valeurs séparées par des virgules)

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 

Note: Je veux obtenir comme sous-requête dans le serveur de SQL.

Répondre

0

Je pense que vous voulez quelque chose comme ça "

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

Ya, par j'écris comme des numéros var = "10" .split (", ") et dans le pays il y a 1 donc je vais travailler? – Rajan

+0

Oui, cela fonctionnera.Vous devez changer les doubles guillemets en simple autour de la virgule. "10" .Split (',') –