加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

vb.net – 为什么LINQ中的Union函数不能删除重复的条目?

发布时间:2020-12-17 00:02:24 所属栏目:大数据 来源:网络整理
导读:我正在使用VB .NET,我知道Union通常使用ByRef,但在VB中,字符串通常被处理为好像它们是原始数据类型. 因此,问题在于: Sub Main() Dim firstFile,secondFile As String(),resultingFile As New StringBuilder firstFile = My.Computer.FileSystem.ReadAllText
我正在使用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

1.txt包含:
一个
b
C
d
?

2.txt包含:
b
C
d
?
F
G
H
一世
?

运行代码后,我得到:
一个
b
C
d
?
b
F
G
H
一世
?

任何使联盟功能都像数学对应的建议?

Linq Union确实按照您的意愿执行.确保输入文件正确(例如,其中一行可能在换行符之前包含空格)或者在拆分后修剪字符串?
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

在linqpad中,结果是{“a”,“s”,“d”,“f”,“123”}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读