gpt4 book ai didi

c# - 如何从 LinkedList 中提取 LinkedListNode

转载 作者:太空狗 更新时间:2023-10-29 17:46:53 25 4
gpt4 key购买 nike

我有一个 LinkedList,我用它来跟踪发送到此类的连续数字。 (我最终想找到丢失的数字)。

我现在需要使用方法 ranges.AddAfter(recentNode,someNewNode) ,但我不能通过类型转换来做到这一点。我错过了什么?

class ContiguousData 
{
LinkedList<ContiguousDataValue> ranges = new LinkedList<ContiguousDataValue>();

public void AddValue(int val)
{
LinkedListNode<ContiguousDataValue> recentNode = null;

foreach (var range in ranges)
{
if (val > range.UpperInt)
{
if (val == range.UpperInt + 1)
range.UpperInt = val;
else
{
if (recentNode == null)
ranges.AddFirst(new ContiguousDataValue() { UpperInt = val, LowerInt = val });
else
ranges.AddAfter(recentNode, new ContiguousDataValue() { UpperInt = val, LowerInt = val });
}
break;
}
else if (val < range.LowerInt)
{
if (val == range.LowerInt - 1)
range.LowerInt = val;
else
{
// do more logic (incomplete)
}
}

// Compiler error
recentNode = (LinkedListNode<ContiguousDataValue>)range;
}

if (ranges.Count == 0)
{
ranges.AddFirst(new ContiguousDataValue() { UpperInt = val, LowerInt = val });
return;
}
}

internal class ContiguousDataValue
{
public int UpperInt { get; set; }
public int LowerInt { get; set; }
}
}

由于转换不起作用,我该如何转换 rangeLinkedListNode<T>

最佳答案

我想你在找;

var ranges = new LinkedList<ContiguousDataValue>();

for (var recentNode = ranges.First;
recentNode != null;
recentNode = recentNode.Next)
{
var range = recentNode.Value;
ranges.AddAfter(recentNode,someNewNode);
}

关于c# - 如何从 LinkedList<T> 中提取 LinkedListNode<T>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10569430/

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