Cómo convertir el objeto jerárquico anidado para aplanar objetos utilizando LINQ? Sé que podemos usar forec fácilmente para lograr eso. Pero me pregunto si hay alguna forma de escribirlo en LINQ.LINQ: cómo convertir el objeto jerárquico anidado para aplanar el objeto
class Person{
public int ID {get;set}
public string Name {get;set}
public List<Person> Children {get;}
}
datos:
ID : 1
Name : Jack
Children
2 | Rose
3 | Paul
me gusta convertir estos datos en formato de aplanar, como a continuación.
1 | Jack
2 | Rose
3 | Paul
¿Cómo lo podemos hacer con Linq?
Por supuesto, los lambdas pueden llamarse a sí mismos. Aquí está Fibonacci usando una lambda recursiva: 'Func fib = null; fib = i => i <= 1? i: fib (i-1) + fib (i-2); ' –
Dije" * anonymous * lambdas no pueden llamarse a sí mismos ", por lo que no puede escribir una sola expresión que devuelva el valor que desea - - Necesita declarar una función con nombre para recurse con. – mquander
Entonces, al poner algo anónimo en una variable ¿ya no es anónimo? P.ej. 'var a = new {X = 5};'? Todavía llamaría a lo que 'a' hace referencia a un tipo anónimo. Microsoft dice incondicionalmente que ["Una expresión lambda es una función anónima"] (http://msdn.microsoft.com/en-us/library/bb397687.aspx) y mira el segundo ejemplo de [Métodos anónimos] (http: //msdn.microsoft.com/en-us/library/0yw3tz5k.aspx). Casi todo lo anónimo debe colocarse en algún tipo de variable o parámetro con nombre; de lo contrario, no son utilizables por el código. Eso no quiere decir que no sean anónimos. –