Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/11.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#如何运行链表';从主程序中删除的方法?_C#_List_Methods - Fatal编程技术网

C#如何运行链表';从主程序中删除的方法?

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

我有一个用户制作的链表(没有LINQ)。 我有项目,但我想删除一些

“我的链接列表”的删除方法:

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
只是一个可以搜索的字段示例。