检查vb.net

时间:2016-07-19 11:13:43

标签: .net vb.net parsing types

我想知道如何检查inputfile的每一行中的第一个字母是什么类型的数据(整数 / char ) 。
我找不到能回答我问题的东西,特别是因为我不知道在这之后我该怎么搜索。

例如,在我的inputfile中构建如下:

Birthdate;Name
19920711;John
19801106;Alex
19950327;Sam

现在我只想过滤掉没有姓名和标题的日期。怎么可能?

2 个答案:

答案 0 :(得分:1)

您可以使用Char.IsDigit和/或Char.IsLetter

例如:

Using sr As New StreamReader("c:\myfile")
        Do Until sr.EndOfStream
            Dim line = sr.ReadLine
            If line.Length > 0 Then
                If Char.IsLetter(line(0)) Then
                    Debug.WriteLine("First char is a letter")
                ElseIf Char.IsNumber(line(0)) Then
                    Debug.WriteLine("First char is a number")
                End If
            End If
        Loop
    End Using

答案 1 :(得分:0)

您可以使用以下使用Char.IsDigitDateTime.TryParseExact

的LINQ查询
var linesWithoutHeader = File.ReadLines(path)
    .Select(line => line.Trim())
    .SkipWhile(line => line.Length == 0 || !Char.IsDigit(line[0]));

DateTime birthDate = DateTime.MinValue;
List<DateTime> birthDateList = linesWithoutHeader
    .Where(line => line.Contains(';'))
    .Select(line => line.Remove(line.IndexOf(';')))
    .Where(dateStr => DateTime.TryParseExact(dateStr, "yyyyMMdd", null, DateTimeStyles.None, out birthDate))
    .Select(dateStr => birthDate)
    .ToList();