Tengo una lista que consta de listas que contienen hasta una sola cadena, por ejemplo:
var fruits = new List<List<string>> { new List<string>(), new List<string> { "Apple" }, null, new List<string> { "Banana" }, };Me gustaría extraer las cadenas de la lista anterior, sin permitir que las listas que contienen las cadenas tengan más de un elemento. Es decir, necesito tener el siguiente resultado:
{ "Apple", "Banana" }Hasta ahora he estado intentando lo siguiente:
var result = fruits .Where(x => x != null) .Select(x => x.SingleOrDefault()) .Where(x => x != null);¿Hay una solución más simple para hacer esto?
Si entiendo correctamente, desea seleccionar todos los elementos únicos en las listas en una sola lista, puede usar SelectMany() y Distinct() para eso:
fruits.Where(x=> x != null).SelectMany(x=> x).Distinct();