How to check if a variable is an IEnumerable of some sort

后端 未结 9 925
一生所求
一生所求 2021-02-01 12:47

basically I\'m building a very generic T4 template and one of the things I need it to do is say print variable.ToString(). However, I want it to evaluate lists and

9条回答
  •  没有蜡笔的小新
    2021-02-01 13:12

    If you don't care about object type and you are not in Generic method in C# 7.0+

            if (item is IEnumerable enumVar)
            {
                foreach (var e in enumVar)
                {
                        e.ToString();
    
                }
            }
    
    
    

    In C# < 7.0

            if (item is IEnumerable)
            {
                var enumVar = item as IEnumerable;
                foreach (var e in enumVar)
                {
                    e.ToString();
    
                }
                //or you can cast an array to set values, 
                //since IEnumerable won't let you, unless you cast to IList :) 
                //but array version here 
                //https://stackoverflow.com/a/9783253/1818723
            }
    
        

    提交回复
    热议问题