¿Cómo puedo obtener los valores singulares de una matriz .neta?
Pregunta
Decir que tengo esta matriz:MyArray(0)="aaa" MyArray(1)="bbb" MyArray(2)="aaa"
Hay una .función de red que me puede dar los valores únicos?Me gustaría algo así como una salida de la función:OutputArray(0)="aaa" OutputArray(1)="bbb"
Solución
Asumiendo que usted tiene .Net 3.5/LINQ:
string[] OutputArray = MyArray.Distinct().ToArray();
Otros consejos
Una solución podría ser utilizar LINQ como en el siguiente ejemplo:
int[] test = { 1, 2, 1, 3, 3, 4, 5 };
var res = (from t in test select t).Distinct<int>();
foreach (var i in res)
{
Console.WriteLine(i);
}
Que se imprima la espera:
1
2
3
4
5
Usted podría utilizar un diccionario para agregarlos con una llave, y cuando se agregan comprobar si la clave ya existe.
string[] myarray = new string[] { "aaa", "bbb", "aaa" };
Dictionary mydict = new Dictionary();
foreach (string s in myarray) {
if (!mydict.ContainsKey(s)) mydict.Add(s, s);
}
El uso de la clase HashSet incluido en .NET 3.5.
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow