Как извлечь LinkedListNode из LinkedList

У меня есть LinkedList, который я использую для отслеживания последовательных номеров, отправляемых в этот класс. (В конечном итоге я хочу найти недостающие числа).

Теперь мне нужно использовать диапазоны метода . AddAfter(recentNode,someNewNode), но я не могу сделать это путем кастинга. Чего мне не хватает?

class ContiguousData 
{
    LinkedList ranges = new LinkedList();

    public void AddValue(int val)
    {
        LinkedListNode 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)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; }
    }
}

Поскольку приведение не работает, как преобразовать диапазон в LinkedListNode?

9
задан goodguys_activate 13 May 2012 в 05:21
поделиться