|
Sub TestUnion()
Dim p1() As Integer = {1, 3, 5, 7, 9, 11}
Dim p2() As Integer = {2, 4, 6, 8, 10, 11}
Dim result = p1.Union(p2)
For Each item In result
Console.WriteLine(item)
Next
Console.ReadLine()
End Sub |
|
1
3
5
7
9
11
2
4
6
8
10 |
|
Sub TestUnion2()
Dim p1() As String = {"code6421", "tom", "cathy"}
Dim p2() As String = {"code6421", "Tom", "cathy"}
Dim result = p1.Union(p2, _
StringComparer.Create(System.Globalization.CultureInfo.CurrentCulture, True))
For Each item In result
Console.WriteLine(item)
Next
Console.ReadLine()
End Sub |
|
code6421
tom
cathy |
|
Sub TestIntersect()
Dim p1() As Integer = {1, 3, 5, 7, 9, 11}
Dim p2() As Integer = {2, 4, 6, 7, 10, 11}
Dim result = p1.Intersect(p2)
For Each item In result
Console.WriteLine(item)
Next
Console.ReadLine()
End Sub |
|
Sub TestIntersect2()
Dim p1() As String = {"code6421", "tom", "cathy"}
Dim p2() As String = {"code6421", "Tom", "cathy"}
Dim result = p1.Intersect(p2, _
StringComparer.Create(System.Globalization.CultureInfo.CurrentCulture, True))
For Each item In result
Console.WriteLine(item)
Next
Console.ReadLine()
End Sub |
|
code6421
tom
cathy |
|
Sub TestExcept()
Dim p1() As Integer = {1, 3, 5, 7, 9, 11}
Dim p2() As Integer = {2, 4, 6, 8, 10, 11}
Dim result = p1.Except(p2)
For Each item In result
Console.WriteLine(item)
Next
Console.ReadLine()
End Sub |
|
1
3
5
7
9 |
|
Sub TestExcept2()
Dim p1() As String = {"code6421", "tom", "cathy2"}
Dim p2() As String = {"code6421", "Tom", "cathy"}
Dim result = p1.Except(p2, _
StringComparer.Create(System.Globalization.CultureInfo.CurrentCulture, True))
For Each item In result
Console.WriteLine(item)
Next
Console.ReadLine()
End Sub |
|
Sub TestOfType()
Dim ar As New ArrayList()
ar.Add("Test1")
ar.Add("Test2")
ar.Add("Test3")
ar.Add("Test4")
ar.Add(16)
Dim result = ar.OfType(Of String)()
'Of Type will not raise invalid type-casting exception.
'if you need receive the exception at type-casting,use Cast.
For Each item In result
Console.WriteLine("Type is {0} and value is {1}", item.GetType(), item)
Next
Console.ReadLine()
End Sub |
|
Type is System.String and value is Test1
Type is System.String and value is Test2
Type is System.String and value is Test3
Type is System.String and value is Test4 |
|
Sub TestSum()
Dim list() As Integer = {18, 20, 25}
Dim result = list.Sum()
Console.WriteLine(result)
Console.ReadLine()
End Sub |
|
Sub TestSum2()
Dim persons() = { _
New With {.Name = "code6421", .Age = 18, .Address = "Taipai"}, _
New With {.Name = "jeffray", .Age = 18, .Address = "USA"}, _
New With {.Name = "catch", .Age = 18, .Address = "USA"}, _
New With {.Name = "joe", .Age = 18, .Address = "NY"} _
}
Dim result = persons.Sum(Function(p) p.Age)
Console.WriteLine(result)
Console.ReadLine()
End Sub |
|
Sub TestAggreate()
Dim list() As Integer = {18, 20, 25}
Dim result = list.Aggregate(Function(x, y) x * y)
Console.WriteLine(result)
Console.ReadLine()
End Sub |
|
Sub TestAggreate2()
Dim list() As Integer = {18, 20, 25}
Dim result = list.Aggregate(9000, Function(x, y) x * y)
Console.WriteLine(result)
Console.ReadLine()
End Sub |
|
Sub TestWhereFunction()
Dim list() As String = {"code6421", "tom", "cathy"}
Dim result = list.Where(AddressOf CompareData)
For Each item In result
Console.WriteLine(item)
Next
Console.ReadLine()
End Sub
Function CompareData(ByVal val As String) As Boolean
Dim conn As New SqlClient.SqlConnection()
'do something of you want..............
Return True
End Function |
|
註:C#的Lambda Expression可以允許寫得很複雜,如下:
不過VB.NET 2008並不支援此類寫法,所以還是得走Function模式。 |
|
Dim list() = {1, 2, 3} |
|
Dim list() = {1, 2, 3}
Dim result = list.Sum(Function(p) p) |
|
Sub Main()
Dim list() As Integer = {1, 2, 3}
Dim result = list.Sum()
Console.WriteLine(result)
Console.ReadLine()
End Sub |
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/12639172/viewspace-277789/ ,如需转载,请注明出处,否则将追究法律责任。