protected void Page_Load(object sender, EventArgs e)
    {
        List<int> L = new List<int>();
        L.Add(1);
        L.Add(2);
        L.Add(3);
        this.Swap<int>(L, L);
    }    private void Swap<T>(List<T> list1, List<T> list2)
    {
        int count = 0;
        foreach (int a in list1)
        {
            count += a;
        }
        Response.Write(count + "<br>");
    }请问我能否这么用啊???如果不能这么用应该是怎么样的????
谢谢各位大侠

解决方案 »

  1.   

    编译器错误消息: CS0030: 无法将类型“T”转换为“int”源错误: 行 26:     {
    行 27:         int count = 0;
    行 28:         foreach (int a in list1)
    行 29:         {
    行 30:             count += a;
     
      

  2.   

    实在是无语
    1.Swap是交换的意思,但你要实现的功能不是
    2.既然foreach中的变量是int型的,你用范型干嘛?List<int> L1 = new List<int>();
    L1.Add(1);
    L1.Add(2);
    L1.Add(3);
    List<int> L2 = new List<int>();
    L2.Add(4);
    L2.Add(5);
    this.Swap<int>(ref L1, ref L2); private void Swap<T>(ref List<T> list1, ref List<T> list2)
    {
    List<T> list = list2;
    list2 = list1;
    list1 = list;
      

  3.   


    foreach (int a in list1)
            {
                count += a;
            } 你这样写是不对的  编译器在编译的时候是不知道list1的元素是什么类型的  也就是"待确定类型" 必须这样写foreach (T a in list1)
            {
               
            } 但是这样写了之后 里面就不能用 count += a; 了  呵呵 你自己要在此基础上想一种新的赋值方法 相信不难~
      

  4.   


    foreach (T a in list1)
            {
               int i=(int)a;
               count += i;
            }