Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/336.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在LinkedList中搜索<;T>;_C#_Interface - Fatal编程技术网

C# 在LinkedList中搜索<;T>;

C# 在LinkedList中搜索<;T>;,c#,interface,C#,Interface,让我们看看下面的代码: class student :IComparable , IComparable<student> { public string name = ""; public override string ToString() { return name; } #region IComparable Members public int CompareTo(object obj) {

让我们看看下面的代码:

class student :IComparable , IComparable<student> 
{
    public string name = "";

    public override string ToString()
    {
        return name; 
    }

    #region IComparable Members

    public int CompareTo(object obj)
    {
        if (this.name.Equals(((student)obj).name ) )
            return 0 ; 
        else
            return -1 ; 
    }

    #endregion

    #region IComparable<student> Members

    public int CompareTo(student other)
    {
        if (this.name.Equals (other.name )) 
            return 0 ; 
        else
            return -1 ; 
    }

    #endregion
}
虽然“student”类实现了“IComparable,IComparable”,但此打印错误


我该怎么做才能工作

包含的问题不适用于IComparable接口。它使用Equals方法。因此,请忽略它:

    public override bool Equals(object obj)
    {
        return this.CompareTo(((IComparable)obj)) == 0;
    }
为您的学生班级实施和培训


为什么要向
IComparable
施压?@dalle-只是为了制造戏剧性的重音:)向
学生
施压会更合适,并节省少量指令。@dalle-因为Dewfy使用了CompareTo方法:)@Farah\u online:
IComparable.CompareTo
的参数类型为
object
i可比较。CompareTo
的参数类型为
T
。强制转换为
IComparable
没有意义,但是当然
IComparable
可以转换为
对象。对
Student
进行强制转换将导致调用
IComparable.CompareTo
方法,然后该方法“保存”一次强制转换,只保存少量指令。
Console.WriteLine(list.Contains(new student{ name="Noor"})); 
    public override bool Equals(object obj)
    {
        return this.CompareTo(((IComparable)obj)) == 0;
    }