我正在使用VB .NET,我知道Union通常使用ByRef但是在VB中,字符串通常被处理为好像它们是原始数据类型.
因此,这是问题所在:
Sub Main()
Dim firstFile, secondFile As String(), resultingFile As New StringBuilder
firstFile = My.Computer.FileSystem.ReadAllText(My.Computer.FileSystem.SpecialDirectories.Desktop & "\1.txt").Split(vbNewLine)
secondFile = My.Computer.FileSystem.ReadAllText(My.Computer.FileSystem.SpecialDirectories.Desktop & "\2.txt").Split(vbNewLine)
For Each line As String In firstFile.Union(secondFile)
resultingFile.AppendLine(line)
Next
My.Computer.FileSystem.WriteAllText(My.Computer.FileSystem.SpecialDirectories.Desktop & "\merged.txt", resultingFile.ToString, True)
End Sub
Run Code Online (Sandbox Code Playgroud)
1.txt包含:
a
b
c
d
e
2.txt包含:
b
c
d
e
f
g
h
i
j
运行代码后,我得到:
a
b
c
d
e
b
f
g
h
i
j
任何使联盟功能都像数学对应的建议?
Rob*_*son 16
Linq Union确实按照您的意愿执行.确保您的输入文件正确(例如,其中一行可能在换行符之前包含空格)或Trim()分割后的字符串?
var list1 = new[] { "a", "s", "d" };
var list2 = new[] { "d", "a", "f", "123" };
var union = list1.Union(list2);
union.Dump(); // this is a LinqPad method
Run Code Online (Sandbox Code Playgroud)
在linqpad中,结果是{"a", "s", "d", "f", "123" }
| 归档时间: |
|
| 查看次数: |
10294 次 |
| 最近记录: |