Давайте иметь этот код:
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
}
Я создаю LinkedList из этого класса в Main Like:
LinkedList<student> list = new LinkedList<student>();
list.AddLast(new student { name="Farah"});
list.AddLast(new student { name="Noor"});
list.AddLast(new student { name="Reem"});
foreach (student s in list)
{
Console.WriteLine(s);
}
это печать:
Фара
Noor
REEM
но когда я пытаюсь найти какой-либо элемент, он не находит его, например:
Console.WriteLine(list.Contains(new student{ name="Noor"}));
Это Print false, хотя класс "student" реализует "IComparable, IComparable" !!
Что мне делать, чтобы работать ??