Me gustaría saber cómo puedo contar la cantidad de valores únicos en una matriz dentada.Cómo encontrar valores únicos en la matriz dentada
Mi objeto de dominio contiene una propiedad de cadena que tiene valores delimitados por espacios.
class MyObject
{
string MyProperty; //e.g = "v1 v2 v3"
}
dado una lista deMiObjeto 's cómo puedo determinar el número de valores únicos ?
El siguiente código linq devuelve una matriz de valores de matriz irregulares. Una solución sería almacenar una única matriz temporal de elementos, en bucle a través de cada matriz dentada y si los valores no existen, para agregarlos. Entonces, un conteo simple devolvería el número único de valores. Sin embargo, me preguntaba si había una mejor solución .
db.MyObjects.Where(t => !String.IsNullOrEmpty(t.MyProperty))
.Select(t => t.Categories.Split(new char[] { ' ' },
StringSplitOptions.RemoveEmptyEntries))
.ToArray()
A continuación se muestra un ejemplo más legible:
array[0] = { "v1", "v2", "v3" }
array[1] = { "v1" }
array[2] = { "v4", "v2" }
array[3] = { "v1", "v5" }
De todos los valores de los artículos únicos son v1, v2, v3, v4, v5. El número total de artículos únicos es .
¿Existe alguna solución, posiblemente utilizando linq, que devuelva solo los valores únicos o devuelva el número de valores únicos?
Solo un FYI para los lectores ... esta respuesta y la respuesta de Mark Byers son efectivamente las mismas ng con diferente sintaxis. La respuesta fundamental es "Seleccionar muchos". :) – jrista