Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
In diesem Beispiel wird eine Möglichkeit zum Zusammenführen der Inhalte zweier Dateien gezeigt und dann eine Reihe neuer Dateien erstellt, die die Daten auf neue Weise organisieren.
So erstellen Sie die Datendateien
Kopieren Sie diese Namen in eine Textdatei mit dem Namen names1.txt, und speichern Sie sie in Ihrem Projektordner:
Bankov, Peter Holm, Michael Garcia, Hugo Potra, Cristina Noriega, Fabricio Aw, Kam Foo Beebe, Ann Toyoshima, Tim Guy, Wey Yuan Garcia, Debra
Kopieren Sie diese Namen in eine Textdatei mit dem Namen names2.txt, und speichern Sie sie in Ihrem Projektordner: Beachten Sie, dass die beiden Dateien einige Namen gemeinsam haben.
Liu, Jinghao Bankov, Peter Holm, Michael Garcia, Hugo Beebe, Ann Gilchrist, Beth Myrcha, Jacek Giakoumakis, Leo McLin, Nkenge El Yassir, Mehdi
Beispiel
Class SplitWithGroups
Shared Sub Main()
Dim fileA As String() = System.IO.File.ReadAllLines("../../../names1.txt")
Dim fileB As String() = System.IO.File.ReadAllLines("../../../names2.txt")
' Concatenate and remove duplicate names based on
Dim mergeQuery As IEnumerable(Of String) = fileA.Union(fileB)
' Group the names by the first letter in the last name
Dim groupQuery = From name In mergeQuery
Let n = name.Split(New Char() {","})
Order By n(0)
Group By groupKey = n(0)(0)
Into groupName = Group
' Create a new file for each group that was created
' Note that nested foreach loops are required to access
' individual items with each group.
For Each gGroup In groupQuery
Dim fileName As String = "..'..'..'testFile_" & gGroup.groupKey & ".txt"
Dim sw As New System.IO.StreamWriter(fileName)
Console.WriteLine(gGroup.groupKey)
For Each item In gGroup.groupName
Console.WriteLine(" " & item.name)
sw.WriteLine(item.name)
Next
sw.Close()
Next
' Keep console window open in debug mode.
Console.WriteLine("Files have been written. Press any key to exit.")
Console.ReadKey()
End Sub
End Class
' Console Output:
' A
' Aw, Kam Foo
' B
' Bankov, Peter
' Beebe, Ann
' E
' El Yassir, Mehdi
' G
' Garcia, Hugo
' Garcia, Debra
' Giakoumakis, Leo
' Gilchrist, Beth
' Guy, Wey Yuan
' H
' Holm, Michael
' L
' Liu, Jinghao
' M
' McLin, Nkenge
' Myrcha, Jacek
' N
' Noriega, Fabricio
' P
' Potra, Cristina
' T
' Toyoshima, Tim
Das Programm schreibt eine separate Datei für jede Gruppe im selben Ordner wie die Datendateien.
Kompilieren des Codes
Erstellen Sie ein Visual Basic-Konsolenanwendungsprojekt mit einer Imports
Anweisung für den System.Linq-Namespace.