首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

泛型约束如何设置

2012-12-18 
泛型约束怎么设置代码如下,判断两个List是否相等:public bool CompareSequenceListT(ListT source, Li

泛型约束怎么设置
代码如下,判断两个List是否相等:

public bool CompareSequenceList<T>(List<T> source, List<T> target)
{
    bool res = true;
    if (source.Count != target.Count)
        res = false;
    else
    {
        for (int i = 0; i < source.Count; i++)
        {
            if (source[i] == target[i])
            {
                res = false;
                break;
            }
        }
    }
    return res;
}

编译提示:source[i] == target[i]出错,==运算符无法比较
我要比较的值有可能是int,double,Enum...等, 如何在方法后加对应的约束;

代码用的.net framework2.0框架,无法用Linq...



[最优解释]
本帖最后由 caozhy 于 2012-11-29 16:27:12 编辑 where T : IComparable

然后代码中使用 source[i].CompareTo(target[i]) == 0 代替 source[i] == target[i]
[其他解释]
代码贴错了,是if (source[i] != target[i])
[其他解释]
直接调用Equals方法,那个是从Object继承过来的。
[其他解释]
用where约束比较麻烦,如果单纯解决问题,还不如直接调用Equals方法代替==比较相等,

热点排行