Vb.net 完全删除重复的行
我到处都在网上搜索 我只需要一个代码,删除我的string/list/richtextbox中的所有重复项 下面是我想要的一个例子: 我接受C#&VB.NET代码 发件人: &Vb.net 完全删除重复的行,vb.net,duplicates,removeall,Vb.net,Duplicates,Removeall,我到处都在网上搜索 我只需要一个代码,删除我的string/list/richtextbox中的所有重复项 下面是我想要的一个例子: 我接受C#&VB.NET代码 发件人: & Dim lines1作为新列表(字符串)(RichTextBox1.Lines) 作为整数的Dim testint 对于i As Integer=lines1。计数-1到1步骤-1 如果lines1(i)=lines1(i-1),则 线路1.拆除(一) 线路1.拆除(i-1) i=-1 如果结束 下一个 MsgBox(“
Dim lines1作为新列表(字符串)(RichTextBox1.Lines)
作为整数的Dim testint
对于i As Integer=lines1。计数-1到1步骤-1
如果lines1(i)=lines1(i-1),则
线路1.拆除(一)
线路1.拆除(i-1)
i=-1
如果结束
下一个
MsgBox(“”)
RichTextBox1.Lines=lines1.ToArray
有很多方法可以做到这一点。以下是其中之一:
Dim linesByCount作为新字典(字符串,整数)
对于RichTextBox1.行中的每一行
如果linesByCount.ContainsKey(行),则
lineByCount(行)+=1
其他的
lineByCount.Add(第1行)
如果结束
下一个
将唯一行变暗为新列表(字符串)
对于linesByCount.Keys中的每一行
如果linesByCount(line)=1,则
唯一行。添加(行)
如果结束
下一个
RichTextBox1.Lines=Lines.ToArray()
下面是使用LINQ的另一个选项:
RichTextBox1.Lines=RichTextBox1.Lines。
分组依据(功能)。
其中(函数(g)g.Count()=1)。
选择(功能(g)g键)。
ToArray()
无论您选择哪个选项,诀窍都是在删除任何内容之前先获取每个值的计数。否则,您将不知道副本的最后一个实例实际上是一个副本。也就是说,这两个选项实际上都没有删除任何内容。他们创建一个包含每个项目计数的列表,然后选择计数为1的项目并将其添加到新列表中
还有一个选择:
Dim lines=RichTextBox1.lines
RichTextBox1.Lines=Lines.Where(函数数组.IndexOf(行,s)=数组.LastIndexOf(行,s)).ToArray()
或者您也可以使用:
Dim newLines() As String = liness.Where(Function(s) liness.Where(Function(s1) s = s1).Count = 1).ToArray
djsdjjd
252
Dim newLines() As String = liness.Where(Function(s) liness.Where(Function(s1) s = s1).Count = 1).ToArray