Hello everyone, there is such an example:
class Program { static void Main() { // Анонимные типы в анонимных типах. var instance = new { Name = "Alex", Age = 27, Id = new { Number = 123 } }; Console.WriteLine("Name = {0}, Age = {1}, Id = {2}", instance.Name, instance.Age, instance.Id.Number); // Delay. Console.ReadKey(); } } As you can see, in this example - one anonymous type is embedded in another. I realized that this can be depicted something like this: 
Also, as I understand it, when I create an anonymous type, Visual Studio creates a new class and a new class is created when the compiler encounters a new anonymous type. Novelty is determined by comparing property names, their order and types. And it turns out that when I create a new anonymous type, Visual Studio generates (approximately) the following class:
[DebuggerDisplay("{ x = {x}, y = {y} }", Type = "<Anonymous Type>")] public sealed class Anonymous<TX, TY> { private readonly TX field_x; private readonly TY field_y; public TX x { get { return field_x; } } public TY y { get { return field_y; } } [DebuggerHidden] public Anonymous(PX x, PY y) { field_x = x; field_y = y; } public override bool Equals(object value) { /* тут имплементация */ } public override int GetHashCode() { /* тут имплементация */ } public override string ToString() { /* тут имплементация */ } } But if I have one anonymous type nested in another, then these generated classes will be Nested classes or not?
var instance = new { Name = "Alex", Age = 27, Id = new { Number=123 } };- Grundy