C# 在c中如何在编译时循环遍历泛型类型#

C# 在c中如何在编译时循环遍历泛型类型#,c#,generics,C#,Generics,T在运行时已知。但我想在编译时将T转换为IEnumerable对象类型,并在其中循环 public void x<T>(T obj) { //T is IEnumerable<object> //how to loop through T on compile time? } public void x(T obj) { //T是数不清的 //如何在编译时循环T? } 这听起来很简单 public void x<T>(T obj)

T在运行时已知。但我想在编译时将T转换为IEnumerable对象类型,并在其中循环

public void x<T>(T obj) 
{
   //T is IEnumerable<object>
   //how to loop through T on compile time? 
}
public void x(T obj)
{
//T是数不清的
//如何在编译时循环T?
}
这听起来很简单

    public void x<T>(T obj)
    {
        //T is IEnumerable<object>
        //how to loop through T on compile time? 
        try
        {
            foreach (var item in (IEnumerable)obj)
            {
                // Do what you want
            }
        }
        catch(Exception ex)
        {
            Console.WriteLine(ex.Message);
        }

    }
public void x(T obj)
{
//T是数不清的
//如何在编译时循环T?
尝试
{
foreach(变量项在(IEnumerable)对象中)
{
//做你想做的
}
}
捕获(例外情况除外)
{
控制台写入线(例如消息);
}
}

这看起来像是一个设计问题,简而言之,如果您知道这将是一个
IEnumerable
,那么您的签名可能会反映出
public void x(IEnumerable list)
@MichaelRandall感谢您的评论。但有时T不是一个可数函数,有时它是一个字符串,有时它是一个类。哦,谢谢。这就是我要找的。我将对象装箱到(列表)obj中,显然给了我一个错误。忘记使用IEnumerable。我在学习c#net时玩得很开心。谢谢