LINQ To DataSet Samples - Set OperatorsOn This Page |
This sample uses DistinctRows to remove duplicate DataRows in a DataTable of factors of 300.
Public Sub DataSetLinq46()
Dim factorsOf300 = TestDS.Tables("FactorsOf300")
Dim uniqueFactors = factorsOf300.AsEnumerable().Distinct()
Console.WriteLine("Prime factors of 300:")
For Each f In uniqueFactors
Console.WriteLine(f("factor"))
Next
End Sub
Result:
Prime factors of 300:
2
2
3
5
5
This sample uses Distinct to find the unique Category names.
Public Sub DataSetLinq47()
Dim products = TestDS.Tables("Products").AsEnumerable()
Dim categoryNames = (From p In products _
Select p!Category).Distinct()
Console.WriteLine("Category names:")
For Each n In categoryNames
Console.WriteLine(n)
Next
End Sub
Result:
Category names:
Beverages
Condiments
Produce
Meat/Poultry
Seafood
Dairy Products
Confections
Grains/Cereals
This sample uses Union to create one sequence that contains the unique values from both arrays.
Public Sub DataSetLinq48()
Dim numbersA = TestDS.Tables("NumbersA").AsEnumerable()
Dim numbersB = TestDS.Tables("NumbersB").AsEnumerable()
Dim uniqueNumbers = numbersA.Union(numbersB)
Console.WriteLine("Unique numbers from both DataTables:")
For Each n In uniqueNumbers
Console.WriteLine(n!number)
Next
End Sub
Result:
Unique numbers from both DataTables:
0
2
4
5
6
8
9
1
3
5
7
8
This sample uses Union to create one sequence that contains the unique first letter from both product and customer names.
Public Sub DataSetLinq49()
Dim products = TestDS.Tables("Products").AsEnumerable()
Dim customers = TestDS.Tables("Customers").AsEnumerable()
Dim productFirstChars = From p In products _
Select p.Field(Of String)("ProductName")(0)
Dim customerFirstChars = From c In customers _
Select c.Field(Of String)("CompanyName")(0)
Dim uniqueFirstChars = productFirstChars.Union(customerFirstChars)
Console.WriteLine("Unique first letters from Product names and Customer names:")
For Each ch In uniqueFirstChars
Console.WriteLine(ch)
Next
End Sub
Result:
Unique first letters from Product names and Customer names:
C
A
G
U
N
M
I
Q
K
T
P
S
R
B
J
Z
V
F
E
W
L
O
D
H
This sample uses Intersect to create one sequence that contains the common values shared by both source DataTables.
Public Sub DataSetLinq50()
Dim numbersA = TestDS.Tables("NumbersA").AsEnumerable()
Dim numbersB = TestDS.Tables("NumbersB").AsEnumerable()
Dim commonNumbers = numbersA.Intersect(numbersB, DataRowComparer.Default)
Console.WriteLine("Common numbers shared by both DataTables:")
For Each n In commonNumbers
Console.WriteLine(n!number)
Next
End Sub
Result:
Common numbers shared by both DataTables:
5
8
This sample uses Intersect to create one sequence that contains the common first letter from both product and customer names.
Public Sub DataSetLinq51()
Dim products = TestDS.Tables("Products").AsEnumerable()
Dim customers = TestDS.Tables("Customers").AsEnumerable()
Dim productFirstChars = From p In products _
Select p.Field(Of String)("ProductName")(0)
Dim customerFirstChars = From c In customers _
Select c.Field(Of String)("CompanyName")(0)
Dim commonFirstChars = productFirstChars.Intersect(customerFirstChars)
Console.WriteLine("Common first letters from Product names and Customer names:")
For Each ch In commonFirstChars
Console.WriteLine(ch)
Next
End Sub
Result:
Common first letters from Product names and Customer names:
C
A
G
N
M
I
Q
K
T
P
S
R
B
V
F
E
W
L
O
This sample uses Except to create a sequence that contains the values from numbersADataTable that are not also in numbersB DataTable.
Public Sub DataSetLinq52()
Dim numbersA = TestDS.Tables("NumbersA").AsEnumerable()
Dim numbersB = TestDS.Tables("NumbersB").AsEnumerable()
Dim aOnlyNumbers = numbersA.Except(numbersB)
Console.WriteLine("Numbers in first DataTable but not second DataTable:")
For Each n In aOnlyNumbers
Console.WriteLine(n!number)
Next
End Sub
Result:
Numbers in first DataTable but not second DataTable:
0
2
4
5
6
8
9
This sample uses Except to create one sequence that contains the first letters of product names that are not also first letters of customer names.
Public Sub DataSetLinq53()
Dim products = TestDS.Tables("Products").AsEnumerable()
Dim customers = TestDS.Tables("Customers").AsEnumerable()
Dim productFirstChars = From p In products _
Select p.Field(Of String)("ProductName")(0)
Dim customerFirstChars = From c In customers _
Select c.Field(Of String)("CompanyName")(0)
Dim productOnlyFirstChars = productFirstChars.Except(customerFirstChars)
Console.WriteLine("First letters from Product names, but not from Customer names:")
For Each ch In productOnlyFirstChars
Console.WriteLine(ch)
Next
End Sub
Result:
First letters from Product names, but not from Customer names:
U
J
Z