0
Dim intX, intY As Integer
    intY = Nums.GetUpperBound(0)
    For intX = 0 To intY
        With Nums(intX)
            If .strFtID = strID Then

        ‘calls various subs/functions to get results to show in listbox

                listbox.Items.Add(String.Format(strFmt, "various titles”))
                listbox.Items.Add(String.Format(strFmt, variable results))
            End If
        End With
    Next

このループでは、タイトルのリストボックスが試合ごとに追加されますが、一度だけ追加したいです。また、ループ全体が検索され、一致しない場合は、「一致なし」を追加したいと考えています。このループには複数の一致があるため、ループ内または「else」の下に配置することはできません。

4

2 に答える 2

0

このコードを試してみてください。これはあなたの要件に合っていると思います。

Dim intX, intY As Integer
intY = Nums.GetUpperBound(0)
    For intX = 0 To intY
        With Nums(intX)
            If .strFtID = strID Then

               'This following If statement will restricts the duplicate entries, That is
               'multiple matches in your words.

               If Not listbox.Items.Contains(String.Format(strFmt, "various titles”)) Then
                listbox.Items.Add(String.Format(strFmt, "various titles”))
                listbox.Items.Add(String.Format(strFmt, variable results))
               End if

            End If
        End With
    Next

ループの後、リストボックスの数を確認してください。そのカウントが 0 より大きい場合、上部のループでいくつかの一致が見つかりました。それ以上のアクションを実行せずに終了できるように、それ以外の場合は、そのリストボックスに「一致なし」という単語を追加するだけです。以下のコードを参照してください。

if listbox.Items.count > 0
 listbox.items.add(" NO MATCHES FOUND ")
end if
于 2013-04-11T06:32:37.710 に答える
0

一致が見つかったかどうかを知るために、通常、「見つかった」と呼ぶループの外側にブール値を追加します。次に、それをfalseに設定しました。if ステートメントが一致する場合は、if 内で found を true に設定します。このようにして、ループが終了すると、一致があったかどうかがわかります。

Dim found as Boolean = false
For 
 If
  found = true
 End if
Next 

リストボックスの場合、私はこれを行います:

If Not listbox.Items.Contains(String.Format(strFmt, "various titles”)) Then
 listbox.Items.Add(String.Format(strFmt, "various titles”))
End if
于 2013-04-11T06:09:29.260 に答える