- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我有一个 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; }
}
}
由于转换不起作用,我该如何转换 range
到 LinkedListNode<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/
我以为这个程序可以正常工作,但不幸的是我忽略了一些东西。如何删除第一个节点并将第二个节点转换为链表的前面。我尝试了多种方法,但最终得到了相同的结果。(LinkedList 保持不变)任何指导将不胜感激
我创建了一个链表和几个节点,我想链接这些节点,不断收到此错误消息。 "属性或索引器 System.Collections.Generic.LinkedListNode<>.Next 不能分配给它是只读
让我们从头开始。我有字符串: LOAD B STORE $2 LOAD A MPY =5.01E+10 ADD $2 这样看代码: string code = "LOAD B\r\nST
我很想知道为什么 LinkedListNode 类公开的所有属性(Next、Previous、Value 等)都是只读的,即这些属性没有相应的 setter ? 我试图解决一个与链表相关的小算法问题,
在 .NET 3.5 中,我使用的是 LinkedList 类,但我遇到了以下问题。我希望该列表中的项目知道列表中的上一个和下一个项目。也就是说,我希望items中的方法能够做到this.Next,t
我一直在使用 C# 解决 LeetCode 问题,并且在尝试将 linkedlistnode 的下一个值设置为新节点时注意到一个问题,即 'property or indexer ......Next
我一直在使用 C# 解决 LeetCode 问题,并且在尝试将 linkedlistnode 的下一个值设置为新节点时注意到一个问题,即 'property or indexer ......Next
我在破解编码面试时无法理解这个问题: 编写代码以从未排序的链表中删除重复项 解决方案: public static void deleteDups(LinkedListNode n){ Ha
我正在尝试创建一种简单的方法,让我的链表像 C# 中的循环链表一样工作。 我有这段代码,它不想显示为扩展方法。知道为什么吗? static class CircularLinkedList {
请原谅我的无知,但我开始准备我的第一次技术面试,并在主题链表上遇到了这个问题和答案 问题:实现一个算法来删除单链表中间的节点,只允许访问该节点 public static boolean delete
我在 C# 中使用 LinkedList。我只想做一个简单的代码,将 B 从列表中排除,并直接将节点 A 与 B 连接起来。下一步: A.Next = B.Next; B.Next.Previous
我在 C# 中使用 LinkedList。我只想做一个简单的代码,将 B 从列表中排除,并直接将节点 A 与 B 连接起来。下一步: A.Next = B.Next; B.Next.Previous
我有一个 LinkedList,我用它来跟踪发送到此类的连续数字。 (我最终想找到丢失的数字)。 我现在需要使用方法 ranges.AddAfter(recentNode,someNewNode) ,
我在理解如何在 LINQ 中执行某些操作时遇到问题。 我有一个链表,对象的类型无关紧要。重要的是我想在 Where() 中做点什么基于当前对象和列表中下一个对象之间的关系。 为什么我不能做这样的事情:
我正在使用以下代码获取链表工作列表的第一个元素,但在第 2 行出现错误 Cannot implicitly convert type System.Collections.Generic.Linked
我正在使用以下代码获取链表工作列表的第一个元素,但在第 2 行出现错误 Cannot implicitly convert type System.Collections.Generic.Linked
我是一名优秀的程序员,十分优秀!