如何获得链表中数字的索引?

Sma*_*boy 4 c# c#-3.0 c#-2.0 c#-4.0

我有一个链表,构造如下:

LinkedList<int> linked = new LinkedList<int>();
var array = new int[] { 23, 55, 64, 65 };
foreach (var item in array)
{
    linked.AddLast(item);
}
Run Code Online (Sandbox Code Playgroud)

如何找到数字64的索引?

Gro*_*roo 12

唯一的方法是逐个元素检查并增加一个计数器(通过"唯一的方式",我说其他方法,如LINQ需要在内部做同样的事情).

手写的扩展方法看起来像这样:

public static class LinkedListExt
{
    public static int IndexOf<T>(this LinkedList<T> list, T item)
    {
        var count = 0;
        for (var node = list.First; node != null; node = node.Next, count++)
        {
            if (item.Equals(node.Value))
                return count;
        }
        return -1;
    }
}
Run Code Online (Sandbox Code Playgroud)

但是可以很容易地使用LINQ作为@LB写入(产生相同的时间复杂度).