gpt4 book ai didi

c# - 如何在 C# 中将递归对象转换为集合?

转载 作者:太空宇宙 更新时间:2023-11-03 11:46:36 25 4
gpt4 key购买 nike

我有一个递归对象,实际上是一个链表:

public class LinkedList 
{
public string UniqueKey { get; set; }
public LinkedList LinkedList { get; set; }
}

LinkedList 将有一些最终以 LinkedList.LinkedList == null 结尾的对象图。

我想获取图中的所有对象并将它们放入一个 LinkedList 集合中,以便我可以迭代它们。我如何在 C# 中执行此操作?我觉得好像有一种非常简单的方法可以使用 yield 或 Linq voodoo 来解决这个问题?

最佳答案

像这样的东西应该可以工作。如果您可以控制该类,则可以直接将其设为 IEnumerable

public class LinkedListEnumerable : IEnumerable<string>
{
LinkedList list;
public LinkedListEnumerable(LinkedList l)
{
this.list = l;
}

public IEnumerator<string> GetEnumerator()
{
LinkedList l = list;
while(l != null)
{
yield return l.UniqueKey;
l = l.Next;
}
}
}

然后您可以使用 for-each 循环遍历 LinkedListEnumerable

关于c# - 如何在 C# 中将递归对象转换为集合?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3273953/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com