Buenas a todos, tengo una duda haber si alguien me puede ayudar, tengo un Listview1, con los siguientes Items:
Proyecto1.docx
Presentacion_1.pptx
Informe2.docx
Proyecto1.docx
Informe3.docx
Presentacion_2.docx
Informe1.docx
Presentacion_2.docx
Lo que quiero hacer es separar los Items duplicados y los no duplicados:
No Duplicados:
Presentacion_1.pptx
Informe2.docx
Informe3.docx
Informe1.docx
Duplicados:
Proyecto1.docx
Presentacion_2.docx
Para listar los duplicados hice lo siguiente:
Dim NuevaLista As New List(Of String)
Total = ListView1.Items.Count - 1
For i = 0 To Total
For j = i + 1 To Total
If ListView1.Items.Item(i).Text = ListView1.Items.Item(j).Text Then
NuevaLista.Add(ListView1.Items.Item(i).Text)
End If
Next
Next
Ahora necesito alguna idea para obtener para los no Duplicados, alguien me daria alguna idea?
Puedes utilizar LINQ para llevarlo a cabo:
Public Class TestForm
ReadOnly items As IEnumerable(Of String) =
{
"Informe1.docx",
"Informe2.docx",
"Informe3.docx",
"Presentacion_1.pptx",
"Presentacion_2.docx",
"Presentacion_2.docx",
"Proyecto1.docx",
"Proyecto1.docx"
}
Private allDups As IEnumerable(Of String) =
items.GroupBy(Function(str As String) str).
Where(Function(group As IGrouping(Of String, String)) group.Count > 1).
SelectMany(Function(group As IGrouping(Of String, String)) group)
Private uniqueDups As IEnumerable(Of String) =
items.GroupBy(Function(str As String) str).
Where(Function(group As IGrouping(Of String, String)) group.Count > 1).
Select(Function(group As IGrouping(Of String, String)) group.Key)
Private nonDups As IEnumerable(Of String) =
items.Distinct
Private unique As IEnumerable(Of String) =
items.Except(uniqueDups)
Private Sub Test() Handles MyBase.Shown
With Me.ListBox1
.Sorted = True
.BeginUpdate()
.Items.AddRange(items.ToArray) ' Todos.
' .Items.AddRange(nonDups.ToArray) ' Sin Duplicados.
' .Items.AddRange(unique.ToArray) ' Únicos.
' .Items.AddRange(allDups.ToArray) ' Duplicados.
' .Items.AddRange(uniqueDups.ToArray) ' Duplicados Únicos.
.EndUpdate()
End With
End Sub
End Class
Output
Todos:
Informe1.docx
Informe2.docx
Informe3.docx
Presentacion_1.pptx
Presentacion_2.docx
Presentacion_2.docx
Proyecto1.docx
Proyecto1.docx
Sin Duplicados:
Informe1.docx
Informe2.docx
Informe3.docx
Presentacion_1.pptx
Presentacion_2.docx
Proyecto1.docx
Únicos:
Informe1.docx
Informe2.docx
Informe3.docx
Presentacion_1.pptx
Duplicados:
Presentacion_2.docx
Presentacion_2.docx
Proyecto1.docx
Proyecto1.docx
Duplicados Únicos:
Presentacion_2.docx
Proyecto1.docx
Saludos!
Muchas Gracias Elektro me ha funcionado correctamente.
Gracias por todo.