Citar¿Hay alguna forma de eliminar elementos repetidos en un Array?
Cita de: El Benjo en 22 Junio 2015, 21:55 PMRealmente no hay una funcion en .net que te devuelva un array sin elementos repetidos.
Por supuesto que hay una función en la librería de classes de .Net para eliminar duplicados de un Array / Enumerable, usando LINQ:
➢ IEnumerable.Distinct - MSDN
CitarReturns distinct elements from a sequence by using the default equality comparer to compare values.
Ejemplo:
Código (vbnet) [Seleccionar]
Dim values As Integer() = {1, 5, 5, 5, 4, 1, 12, 4, 55}
values = values.Distinct(EqualityComparer(Of Integer).Default).ToArray
MessageBox.Show(String.Join(", ", values))
El argumento que le asigno al parámetro de la extensión Distinct en este caso es innecesario, puedes dejarlo vacío, pero te he mostrado ese overload para denotar que puedes implementar un comparer personalizado y pasárselo cómo parámetro, aunque esto ya requeriría más trabajo.
Cita de: okik en 22 Junio 2015, 18:23 PMHe probado con Array y ArrayList, pero no he visto nada.
La Class Array y ArrayList debes tratar de ignorarlas y omitir su utilización por completo, hay opciones mejores,
te sugiero utilizar una coleccion genérica de tipo List(Of T), la cual puedes utilizar el método List.Add y List.AddRange para añadir nuevos elementos a la colección y de esta manera incrementar dinamicamente la colección, en lugar de ir redimensionando un objeto de tipo Array de forma primitiva.
Ejemplo:
Código (vbnet) [Seleccionar]
Dim int32List As New List(Of Integer) ' From {1, 5, 5, 5, 4, 1, 12, 4, 55}
int32List.AddRange({1, 5, 5, 5, 4, 1, 12, 4, 55})
int32List = int32List.Distinct.ToList
MessageBox.Show(String.Join(", ", int32List))
Saludos!