Linq 过滤器常规列表(逗号分隔的值)

Linq 过滤器常规列表(逗号分隔的值),linq,generic-list,Linq,Generic List,我想筛选如下列表。我有一个类&我想从中筛选筛选筛选字符串中的值。我通过for循环实现了我的结果,但需要一种没有for循环的方法 Public Class WorkStationDetails<br><br> Property CountryId As Integer<br> Property CountryName As String<br> Property TotalWrkStn As Integer<br>

我想筛选如下列表。我有一个类&我想从中筛选筛选筛选字符串中的值。我通过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
公共类工作站详细信息

属性CountryId为整数
属性CountryName作为字符串
属性TotalWrkStn为整数
属性以整数形式存在WRKSTN
属性RemainingWrkStn为整数

末级 Dim WrkStnDtl As列表(工作站详细信息) Dim FilterWrkStnDtl As列表(工作站详细信息) 将数字设置为字符串() 数字=“1,5,6,2,9”。拆分(“,”) 对于i,整数=0到数字。长度-1 filterRkstndtl.AddRange(WrkStnDtl.FindAll(函数(p)(p.CountryId=Numbers(i))) 下一个

注意:我想像sql server中的子查询一样实现它。

我想您想要这样的东西”


是的,我写的像var numbers=“10”。Split(,”),而在国家中有1,所以我会工作吗?是的,那会工作。你需要将逗号周围的双引号改为单引号。“10”。Split(“,”)
var numbers = "1,5,6,2,9".Split(',');
var selected = WrkStnDtl.Where(w => numbers.Contains(w.CountryId)).ToList();