列表-如何通过引用查找项目?

米尼克

我想做这样的事情:

class BaseClass
{
    private List<MyClass> list;

    private void addData()
    {
        list.Add(new MyClass(this));
    }

    public void removeData(MyClass data)
    {
        list.Remove(data);
    }
}

class MyClass
{
    private BaseClass baseClass;

    public MyClass(BaseClass baseClass)
    {
        this.baseClass = baseClass;

        // DO SOMETHING

        calculationDone();
    }

    private void calculationDone()
    {
        baseClass.removeData(this);
    }
}

我的问题是list.Remove()返回false,并且没有从列表中删除项目。我的代码有什么问题?

亨克·霍尔特曼

这是一个时间问题。

您正在calculationDone()从构造函数进行调用然后才能将该实例分配给调用方法中的列表。

只有完成构造函数(和计算)后,该项目才会添加到列表中。

public MyClass(BaseClass baseClass)
{
    this.baseClass = baseClass;

    // DO SOMETHING

    calculationDone();
}

您代码中的顺序为:

  • addData()
    • X的构造函数
      • 计算完成
      • list.Remove(X)//失败,找不到X
    • List.Add(X)

这里的道义是不要将对象的所有工作(整个生命周期)都放在构造函数中。当拆分构造函数和计算量时,它将变为:

private void addData()
{
    var temp =new MyClass(this); 
    list.Add(temp);
    temp.DoCalculations();  // includes calculationDone()
}

这将按预期工作。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

通过遍历“转到”列表来查找项目

来自分类Dev

Markdown:如何通过编号引用编号列表中的项目(例如LaTeX的\ ref / \ label)?

来自分类Dev

Markdown:如何通过编号引用编号列表中的项目(例如LaTeX的\ ref / \ label)?

来自分类Dev

列表中是否有通过引用比较的项目?

来自分类Dev

通过引用添加列表

来自分类Dev

如何从MVC项目中的引用表创建下拉列表

来自分类Dev

如何从MVC项目中的引用表创建下拉列表

来自分类Dev

如何“克隆”对象列表而不取消引用项目本身

来自分类Dev

在多个列表中查找项目?

来自分类Dev

Python:在列表中查找项目

来自分类Dev

在嵌套列表中查找项目

来自分类Dev

如何使用Textbox(localdatabase)在列表框中查找项目

来自分类Dev

如何快速查找已加载实体列表中的项目

来自分类Dev

如何在列表迭代器中查找特定项目

来自分类Dev

如何:通过编号引用列表中编号的元素

来自分类Dev

通过引用传递时如何使用函数更改列表?

来自分类Dev

如何通过列表中的属性值获取/查找对象

来自分类Dev

如何在对象列表中通过data- *查找

来自分类Dev

如何通过命令行查找可用外壳列表?

来自分类Dev

通过迭代列表追加项目

来自分类Dev

如何通过API检索Gitlab项目标签列表?

来自分类Dev

如何通过parentId从列表中删除所有项目

来自分类Dev

如何通过Python删除在列表中多次出现的项目?

来自分类Dev

如何仅使用递归通过python从列表中删除项目

来自分类Dev

Python:通过遍历列表的列表将项目追加到列表

来自分类Dev

如何在列表中查找特定项目以及如何处理该项目

来自分类Dev

如何使用Linq在列表中查找两个连续项目的子列表

来自分类Dev

如何查找列表中嵌套列表的数量?

来自分类Dev

如何最好地通过引用已排序的列表在 Python 列表中插入 NaN 值

Related 相关文章

  1. 1

    通过遍历“转到”列表来查找项目

  2. 2

    Markdown:如何通过编号引用编号列表中的项目(例如LaTeX的\ ref / \ label)?

  3. 3

    Markdown:如何通过编号引用编号列表中的项目(例如LaTeX的\ ref / \ label)?

  4. 4

    列表中是否有通过引用比较的项目?

  5. 5

    通过引用添加列表

  6. 6

    如何从MVC项目中的引用表创建下拉列表

  7. 7

    如何从MVC项目中的引用表创建下拉列表

  8. 8

    如何“克隆”对象列表而不取消引用项目本身

  9. 9

    在多个列表中查找项目?

  10. 10

    Python:在列表中查找项目

  11. 11

    在嵌套列表中查找项目

  12. 12

    如何使用Textbox(localdatabase)在列表框中查找项目

  13. 13

    如何快速查找已加载实体列表中的项目

  14. 14

    如何在列表迭代器中查找特定项目

  15. 15

    如何:通过编号引用列表中编号的元素

  16. 16

    通过引用传递时如何使用函数更改列表?

  17. 17

    如何通过列表中的属性值获取/查找对象

  18. 18

    如何在对象列表中通过data- *查找

  19. 19

    如何通过命令行查找可用外壳列表?

  20. 20

    通过迭代列表追加项目

  21. 21

    如何通过API检索Gitlab项目标签列表?

  22. 22

    如何通过parentId从列表中删除所有项目

  23. 23

    如何通过Python删除在列表中多次出现的项目?

  24. 24

    如何仅使用递归通过python从列表中删除项目

  25. 25

    Python:通过遍历列表的列表将项目追加到列表

  26. 26

    如何在列表中查找特定项目以及如何处理该项目

  27. 27

    如何使用Linq在列表中查找两个连续项目的子列表

  28. 28

    如何查找列表中嵌套列表的数量?

  29. 29

    如何最好地通过引用已排序的列表在 Python 列表中插入 NaN 值

热门标签

归档