来自CSV源的Linq在VB.net上返回空记录

时间:2019-01-16 08:48:08

标签: vb.net linq csv

我使用vb.net从csv中提取了数据,如下代码

    Dim district As New List(Of tbDistrict)

    Dim path As String = AppDomain.CurrentDomain.BaseDirectory & "tb_district.csv"
    Dim results = (From line In File.ReadAllLines(path)
                   Let value = line.Split(";").
                                    Select(Function(x) x)
                   Select New With {.district_id = value(0),
                                    .district_code = value(1),
                                    .amphur_id = value(2),
                                    .district_name = value(3),
                                    .province_id = value(4)}).ToList()
    'Console.WriteLine(results.Count)
    For Each item In results
        district.Add(New tbDistrict With {
                .district_id = item.district_id,
                .district_code = item.district_code,
                .district_name = item.district_name,
                .amphur_id = item.amphur_id,
                .province_id = item.province_id
             })
    Next

我有2000条记录添加到列表中。然后,我尝试使用linq通过以下代码获取一些记录

    Dim provinceid As String = "1"
    Dim amphurid As String = "1"
    Dim mystring As String = "test"

    Dim searchtabbol As List(Of tbDistrict) = district.Where(Function(x) _
                                                    (x.province_id = provinceid) AndAlso
                                                    (x.amphur_id = amphurid) AndAlso
                                                    (x.district_name.Contains(mystring.Trim()))).ToList()

    Console.WriteLine(searchtabbol.Count)

但是尽管存在行,但我得到了0条记录返回。我不确定代码有什么问题吗?感谢所有建议。

0 个答案:

没有答案