VB.net 检查数组元素是否存在
VB.net Check if Array Element Exists
我有 2 个子例程调用另一个来写入日志文件。数据放在一个名为 LogData() 的数组中。子例程 1 包含 3 个元素,而子例程 2 包含 4 个元素。如果我只使用所有 LogData() 元素编写日志,则子例程 1 运行时会出错,因为它在 LogData(3) 中不包含任何元素。如何检查 LogData 元素 (3) 是否有值,如果有,将其写入日志?我尝试使用下面的 If 语句,但是这个错误:
If (Not LogData(3) Is Nothing) Then
w.WriteLine("Address : {0}", LogData(3))
End If
我也试过:
If LogData.Count > 2 Then
If Not arrayList(yourIndex) Is Nothing Then
如果我只是将 LogData() 写入日志文件,我可以只使用循环。但是,因为我在每个元素之间添加文本,所以我无法这样做。
子 1:
Dim appData As String = GetFolderPath(SpecialFolder.ApplicationData)
Dim LogPath As String = appData & "\myApplication"
Dim LogData() As String = {Username, Action, Domain}
If (Not System.IO.Directory.Exists(LogPath)) Then
System.IO.Directory.CreateDirectory(LogPath)
End If
Using w As StreamWriter = File.AppendText(LogPath & "\log.txt")
Log(LogData, w)
End Using
子 2:
Dim appData As String = GetFolderPath(SpecialFolder.ApplicationData)
Dim LogPath As String = appData & "\myApplication"
Dim LogData() As String = {Username, Action, Domain, Address}
If (Not System.IO.Directory.Exists(LogPath)) Then
System.IO.Directory.CreateDirectory(LogPath)
End If
Using w As StreamWriter = File.AppendText(LogPath & "\log.txt")
Log(LogData, w)
End Using
登录子:
Public Shared Sub Log2(LogData As Array, w As TextWriter)
w.Write(vbCrLf)
w.WriteLine("Log Entry : {0} - {1}", DateTime.Now.ToLongTimeString(), DateTime.Now.ToLongDateString())
w.WriteLine("username : {0}", LogData(0))
w.WriteLine("Action : {0}", LogData(1))
w.WriteLine("Domain : {0}", LogData(2))
If (Not LogData(3) Is Nothing) Then
w.WriteLine("Address : {0}", LogData(3))
End If
w.WriteLine("Application version: " & Application.ProductVersion)
w.WriteLine("-------------------------------")
End Sub
检查数组长度
Public Shared Sub Log2(LogData() As String, w As IO.TextWriter)
w.Write(vbCrLf)
w.WriteLine("Log Entry : {0} - {1}", DateTime.Now.ToLongTimeString(), DateTime.Now.ToLongDateString())
w.WriteLine("username : {0}", LogData(0))
w.WriteLine("Action : {0}", LogData(1))
w.WriteLine("Domain : {0}", LogData(2))
If LogData.Length = 4 Then'<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
w.WriteLine("Address : {0}", LogData(3))
End If
w.WriteLine("Application version: " & Application.ProductVersion)
w.WriteLine("-------------------------------")
End Sub
我有 2 个子例程调用另一个来写入日志文件。数据放在一个名为 LogData() 的数组中。子例程 1 包含 3 个元素,而子例程 2 包含 4 个元素。如果我只使用所有 LogData() 元素编写日志,则子例程 1 运行时会出错,因为它在 LogData(3) 中不包含任何元素。如何检查 LogData 元素 (3) 是否有值,如果有,将其写入日志?我尝试使用下面的 If 语句,但是这个错误:
If (Not LogData(3) Is Nothing) Then
w.WriteLine("Address : {0}", LogData(3))
End If
我也试过:
If LogData.Count > 2 Then
If Not arrayList(yourIndex) Is Nothing Then
如果我只是将 LogData() 写入日志文件,我可以只使用循环。但是,因为我在每个元素之间添加文本,所以我无法这样做。
子 1:
Dim appData As String = GetFolderPath(SpecialFolder.ApplicationData)
Dim LogPath As String = appData & "\myApplication"
Dim LogData() As String = {Username, Action, Domain}
If (Not System.IO.Directory.Exists(LogPath)) Then
System.IO.Directory.CreateDirectory(LogPath)
End If
Using w As StreamWriter = File.AppendText(LogPath & "\log.txt")
Log(LogData, w)
End Using
子 2:
Dim appData As String = GetFolderPath(SpecialFolder.ApplicationData)
Dim LogPath As String = appData & "\myApplication"
Dim LogData() As String = {Username, Action, Domain, Address}
If (Not System.IO.Directory.Exists(LogPath)) Then
System.IO.Directory.CreateDirectory(LogPath)
End If
Using w As StreamWriter = File.AppendText(LogPath & "\log.txt")
Log(LogData, w)
End Using
登录子:
Public Shared Sub Log2(LogData As Array, w As TextWriter)
w.Write(vbCrLf)
w.WriteLine("Log Entry : {0} - {1}", DateTime.Now.ToLongTimeString(), DateTime.Now.ToLongDateString())
w.WriteLine("username : {0}", LogData(0))
w.WriteLine("Action : {0}", LogData(1))
w.WriteLine("Domain : {0}", LogData(2))
If (Not LogData(3) Is Nothing) Then
w.WriteLine("Address : {0}", LogData(3))
End If
w.WriteLine("Application version: " & Application.ProductVersion)
w.WriteLine("-------------------------------")
End Sub
检查数组长度
Public Shared Sub Log2(LogData() As String, w As IO.TextWriter)
w.Write(vbCrLf)
w.WriteLine("Log Entry : {0} - {1}", DateTime.Now.ToLongTimeString(), DateTime.Now.ToLongDateString())
w.WriteLine("username : {0}", LogData(0))
w.WriteLine("Action : {0}", LogData(1))
w.WriteLine("Domain : {0}", LogData(2))
If LogData.Length = 4 Then'<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
w.WriteLine("Address : {0}", LogData(3))
End If
w.WriteLine("Application version: " & Application.ProductVersion)
w.WriteLine("-------------------------------")
End Sub