【问题标题】:Filter generic list (comma separated values)过滤通用列表(逗号分隔值)
【发布时间】:2017-05-20 10:58:33
【问题描述】:

我想过滤列表如下。我有一个类,我想从中过滤值,这些值在我的过滤器字符串中。我已经通过 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 server中的子查询一样实现。

【问题讨论】:

    标签: linq generic-list


    【解决方案1】:

    我想你想要这样的东西”

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

    【讨论】:

    • 是的,我写的是 var numbers = "10".Split(",") 而在国家/地区有 1,所以我会工作?
    • 是的,这行得通。您需要将逗号周围的双引号更改为单引号。 "10".Split(',')
    猜你喜欢
    • 2021-09-27
    • 1970-01-01
    • 1970-01-01
    • 2020-10-20
    • 2022-01-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多