if(TSource is System.Collections.IList)

解决方案 »

  1.   

    因为List和List<T>都实现了System.Collections.IList接口,你可以判断是否实现这个接口。实现了。就是List,不论是否是泛型的List.
      

  2.   


    如果TSource可以是CustomDefinedType<T>也可以就是简单的T, 而不是一个List呢?
      

  3.   

    那有什么关系。看你要什么了。你自己说要判断是不是List类型。那1,2楼给出的就是答案了。
    关键是你的问题是什么,如果是“那如何判断TSource是不是List呢?”那1,2楼就是答案了。
      

  4.   


    var type=typeof(TSource);
    type.你找找相关的方法
      

  5.   


    不好意思没说清楚, 其实我的问题是如果TSource可以是CustomDefinedType<T>也可以就是简单的T,那么如何判断究竟是哪个呢?谢谢各位!
      

  6.   

    Class MyType1<T>
    {
       T data;
    }Class MyType2<T>
    {
       T data;
    }
    我有一个transform (Expression<Func<TSource, TResult>> transform), 这个transform根据不同的TSource,有不一样的结果比如TSource如果是MyType1,那么transform就是 transform1
       TSource如果是MyType2,那么transform就是 transform2我想知道如何判断TSource是MyType1还是MyType2。谢谢各位拉!头疼阿!TSource
      

  7.   

    if (transform.GetType().Name=="MyType1`1")
    {
    }
    else if (transform.GetType().Name=="MyType2`1")
    {
    }
      

  8.   

    List和List<T>时两回事。先把这个概念整利索。
      

  9.   

    有错,没太注意你的transform是一个delegate
    判断FullName吧
    大概会以这么个东西开头的
    if (transform.GetType().FullName.StartWith("
    System.Linq.Expressions.Expression`1[[System.Func`2[[ConsoleApplication4.MyType1`1"))
    {}比较Dirty的写法,不知道优雅点的
      

  10.   


    List和List<T>不同。但是因为都实现了非泛型的IList接口,就偷懒转换了,一视同仁的同样的方式处理。--------------------------------------------
    我有一个transform (Expression<Func<TSource, TResult>> transform), 这个transform根据不同的TSource,有不一样的结果比如TSource如果是MyType1,那么transform就是 transform1
      TSource如果是MyType2,那么transform就是 transform2我想知道如何判断TSource是MyType1还是MyType2。这种情况最好是写函数重载
    或是我没理解,你这个transform(transform)是嵌套调用还是说transform表示前面的,还是参数里面的?
      

  11.   


    if(typeof(TSource) = typeof(MyType1)) //...
      

  12.   

    如果是这样,就如我14楼说的,写重载就可以了。
    transform (Expression<Func<MyType1, TResult>> transform) 
    transform (Expression<Func<MyType2, TResult>> transform)
      

  13.   

    问题是我要先判断TSource究竟是不是MyType1还是MyType2typeof(TSource) == typeof(MyType1) 
    是肯定不工作的。
      

  14.   

    if ( TSource is MyType1)