Transform list of compex objects to flatt list with LINQ
I have List of Vehicle as shown bellow. I want to show this in CSV file, so in order to do this i would like to flatten this list:

     class Vehicle
    {
        int vid;
        string name;
        string desc;
        CarType car;
        TruckType truck;
        TankType tank;       
    }

    class CarType
    {
        int id;
        string color;
        string manual;
        string model;      
    }

    class TruckType
    {
        int id;
        string width;
        string heigh;       
    }

    class TankType
    {
        int id;
        string color;
        string size;       
    }


How to get all properties (including those in the complex properties) into flat list.
How to do it with linq?
Transform list of compex objects to flatt list with LINQ
===

I have List of Vehicle as shown bellow. I want to show this in CSV file, so in order to do this i would like to flatten this list:

     class Vehicle
    {
        int vid;
        string name;
        string desc;
        CarType car;
        TruckType truck;
        TankType tank;       
    }

    class CarType
    {
        int id;
        string color;
        string manual;
        string model;      
    }

    class TruckType
    {
        int id;
        string width;
        string heigh;       
    }

    class TankType
    {
        int id;
        string color;
        string size;       
    }


How to get all properties (including those in the complex properties) into flat list.
How to do it with linq?