Czy istnieje funkcja sprawdzająca, czy obiekt jest wbudowanym typem danych?

Chciałbym zobaczyć, czy obiekt jestwbudowany typ danych w C #

Jeśli to możliwe, nie chcę sprawdzać ich wszystkich.
To znaczy janie chcesz to zrobić:

        Object foo = 3;
        Type type_of_foo = foo.GetType();
        if (type_of_foo == typeof(string))
        {
            ...
        }
        else if (type_of_foo == typeof(int))
        {
            ...
        }
        ...

Aktualizacja

Próbuję rekurencyjnie utworzyć PropertyDescriptorCollection, gdzie typy PropertyDescriptor mogą nie być wartościami wbudowanymi. Chciałem więc zrobić coś takiego (uwaga: to jeszcze nie działa, ale pracuję nad tym):

    public override PropertyDescriptorCollection GetProperties(Attribute[] attributes)
    {
        PropertyDescriptorCollection cols = base.GetProperties(attributes);

        List<PropertyDescriptor> list_of_properties_desc = CreatePDList(cols);
        return new PropertyDescriptorCollection(list_of_properties_desc.ToArray());
    }

    private List<PropertyDescriptor> CreatePDList(PropertyDescriptorCollection dpCollection)
    {
        List<PropertyDescriptor> list_of_properties_desc = new List<PropertyDescriptor>();
        foreach (PropertyDescriptor pd in dpCollection)
        {
            if (IsBulitin(pd.PropertyType))
            {
                list_of_properties_desc.Add(pd);
            }
            else
            {
                list_of_properties_desc.AddRange(CreatePDList(pd.GetChildProperties()));
            }
        }
        return list_of_properties_desc;
    }

    // This was the orginal posted answer to my above question
    private bool IsBulitin(Type inType)
    {
        return inType.IsPrimitive || inType == typeof(string) || inType == typeof(object);
    }

questionAnswers(3)

yourAnswerToTheQuestion