How to determine if a type is a type of collection?

前端 未结 3 1784
无人共我
无人共我 2021-02-03 17:50

I am trying to determine if a runtime type is some sort of collection type. What I have below works, but it seems strange that I have to name the types that I believe to be coll

3条回答
  •  迷失自我
    2021-02-03 18:21

    Really all of these types inherit IEnumerable. You can check only for it:

    bool IsEnumerableType(Type type)
    {
        return (type.GetInterface(nameof(IEnumerable)) != null);
    }
    

    or if you really need to check for ICollection:

    bool IsCollectionType(Type type)
    {
        return (type.GetInterface(nameof(ICollection)) != null);
    }
    

    Look at "Syntax" part:

    • List

    • IList

    • ICollection

提交回复
热议问题