问题描述
我有一个 LinkedList 类,其中每个节点都有一个数据,它们的数据是泛型类型 T
public class LinkedList<T> where T : IComparable
{
private Node<T> _headNode;
private int _count;
private Node<T> HeadNode
{
get { return _headNode; }
set { _headNode = value; }
}
public LinkedList()
{
_headNode = null;
_count = 0;
}
}
它有一个方法搜索,寻找我询问的节点,与每个节点的数据进行比较。
public int Search(T item)
{
int position = 0;
Node<T> currentNode = _headNode;
while (currentNode != null)
{
if (currentNode.Data.Compareto(item) == 0) //the problem is here
{
return position;
}
position++;
currentNode = currentNode.Next;
}
return -1;
}
当我用 int 或 string 创建一个列表时,可以,但是当我使用对象类型时,它不起作用。
LinkedList <int> listTest = new LinkedList<int>(); //it's OK
LinkedList <object> listTest2 = new LinkedList<object>(); //it doesn't work
发生错误是因为在这种情况下 compareto 无法比较对象类型。如何比较对象类型?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)