0

我想计算未找到值 0 的多行文本框中的数量。

If TxtListScanValue.Text = ("2") Then
    TxtDrawR2.Text &= Environment.NewLine & lastDraw2
    Dim ListScan = TxtNumberListScan.Lines.ToList.Select(Function(o, i) New With {.scan = o, .Index = i})
    Dim DrawR2 = TxtDrawR2.Lines.ToList.Select(Function(o, i) New With {.draw = o, .Index = i})
    Dim list2 = From a In ListScan From b In DrawR2 Where a.Index = b.Index Select LstScan = a.scan, DrwR2 = ("00" & b.draw).Substring(("00" & b.draw).Length - 2) Order By DrwR2 Descending
    TxtListScanTxt.Text = String.Join(vbCrLf, list2)
End If

如果 TxtdrawR5 =

2
4
0
0
1
3
5

在输出中我想显示:5 因为:
我想计算未找到值 0 的计数行。计数行没有 0 值:D (2+4+1+3+5 = 5)(5 行没有 0 值)。

4

1 回答 1

2

你创建这样的函数:

'For Counting
Private Function CountNonZero(ByVal TheCtrl As TextBox) As Integer
    Dim myCnt As Integer = 0
    For Each Content In TheCtrl.Lines
        Dim ContentVal As Integer = 0
        Integer.TryParse(Content, ContentVal)
        If ContentVal <> 0 Then myCnt += 1
    Next
    Return myCnt
End Function

'For Counting

Private Function SummingNonZero(ByVal TheCtrl As TextBox) As Integer
    Dim mySum As Integer = 0
    For Each Content In TheCtrl.Lines
        Dim ContentVal As Integer = 0
        Integer.TryParse(Content, ContentVal)
        If ContentVal <> 0 Then mySum += ContentVal 
    Next
    Return mySum 
End Function

您现在可以计算或求和:

dim TxtdrawR5Count as integer = CountNonZero(TxtdrawR5) 
dim TxtdrawR5Sum as integer = SummingNonZero(TxtdrawR5) 
于 2019-09-17T18:54:00.360 回答