【问题标题】:List in vb.net LIFO or FIFO and why?在 vb.net LIFO 或 FIFO 中列出,为什么?
【发布时间】:2012-05-05 16:48:14
【问题描述】:

我有这个列表(只是一个典型的 .net 列表),我在其中添加了一堆 UI 项,然后将该列表用于一个 Sub,它使用 .getenumarator 和 While 循环遍历它。

现在的问题是我的物品是如何从这个列表中检索出来的???

是先入先出还是后进先出,或者答案不是上面的,我完全输了!!在这种情况下,我可能需要关于其他内容的不同或更多信息。

如果可以的话请帮忙....

谢谢

【问题讨论】:

    标签: vb.net list


    【解决方案1】:

    List 的枚举器将按照元素添加的顺序遍历元素。因此,如果使用 .Add 或 .AddRange 添加元素,则为“FIFO”。但是当然也可以使用 Insert 将元素插入到 List 中的任何位置。

    请参阅此similar question 以获取更多“证据”。 (这不是官方的!)

    【讨论】:

    • Brilliant....正如我所期待的,你能给我一个链接来支持这个吗? ,如果任何地方都有一个....
    • 链接真的有必要吗?他是对的,尝试需要几秒钟。唯一的例外是如果您以允许您在该列表中指定索引的方式插入项目。因此,不应该有任何文档会说“列表是 FIFO”。
    • 很难忽略它的 Insert() 方法。或者它能够访问 O(1) 中的任何元素。谈论 LIFO/FIFO 只是混淆了它的能力。
    • @Hans。同意。我已经扩展了我的答案。
    • List.Add (msdn.microsoft.com/en-us/library/3wcytfd1.aspx) 文档的第一行说“将对象添加到 List(Of T) 的末尾。” List.GetEnumerator (msdn.microsoft.com/en-us/library/b0yss765.aspx) 的文档建议使用 ForEach 循环而不是使用枚举器。
    【解决方案2】:

    如果你有这个列表:

    姓名性别
    杰西女
    迈克男

    这个循环:

    dim str = ""
    for each i as listviewitem in listview1.items
    str &= i.text & " "
    str &= i.subitems(0).text & " "
    next
    

    str = "姓名性别 杰西女 迈克男”

    【讨论】:

    • 但这并不能回答我的问题......你只是给了我一个 for each 循环,那里已经有一个循环我只是想知道从列表中检索项目的逻辑是什么跨度>
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-09-23
    • 2015-06-29
    • 1970-01-01
    • 1970-01-01
    • 2011-01-04
    相关资源
    最近更新 更多