C#如何运行链表';从主程序中删除的方法?
我有一个用户制作的链表(没有LINQ)。 我有项目,但我想删除一些 “我的链接列表”的删除方法:C#如何运行链表';从主程序中删除的方法?,c#,list,methods,C#,List,Methods,我有一个用户制作的链表(没有LINQ)。 我有项目,但我想删除一些 “我的链接列表”的删除方法: public void Delete(ListElem elem) { ListaElem helper = null; ListaElem prev = null; while (helper != elem) { prev = helper; helper = helper.n
public void Delete(ListElem elem)
{
ListaElem helper = null;
ListaElem prev = null;
while (helper != elem)
{
prev = helper;
helper = helper.next;
}
prev.next = elem.next;
}
在此之后,我想从这个列表中删除一个特定的元素,但是我该如何称呼它呢?假设您的类被称为
CustomLinkedList
在代码中的某个时刻,您已经实例化了该类:
CustomLinkedList myList = new CustomLinkedList();
接下来,您将向其中添加一些元素:
ListElem elem1 = new ListElem();
myList.Add(elem1);
要删除元素,您只需说:
myList.Delete(elem1);
现在,如果要在对象中搜索具有特定字段(可能是名称)的元素,该怎么办?您需要另一种方法,请按如下方式定义:
public ListElem Find(String name){
// For every item in my list, look for one that has a name that matches.
}
现在,您可以找到一个特定项,然后将其删除。您只需在实例化的对象上调用该方法?无论在何处创建对象并将其插入列表,都可以将它们存储为引用,然后稍后尝试删除它们。假设我在列表中迭代,并希望删除包含要删除的字符串的特定元素。如何对其调用delete方法?ListElem是什么类型的对象?它有一个字符串字段。我想删除对象中包含特定字符串字段的ListLem。该方法将始终引发空引用异常。如果
elem
为null
则它跳过,而循环和prev
仍为null
和prev.next=elm.next代码>将失败。否则它将在helper=helper.next上崩溃代码>。我现在检查一下。不同之处在于,我的insert方法获取这些对象并将它们放置在列表中。所以我让程序自己来做,所以我不能用名字来引用列表项,你能帮我在遍历列表项时如何分析对象的字符串字段吗,因为elem.Name不起作用。在不知道数据结构的确切编写方式的情况下,我只能提供一般性的建议elem.Name
只是一个可以搜索的字段示例。