C#Indexer和Linq

ale*_*rya 2 c# linq indexer

我在课堂上有一个属性:

public int this[int index]
        {
            get { return _desk[index]; }
            set { _desk[index] = value; }
        }
Run Code Online (Sandbox Code Playgroud)

但我不能在Linq使用这个课程.怎么做?

dtb*_*dtb 11

如果您的类没有实现IEnumerable <T>但具有索引器和Count属性,则可以使用Enumerable.Range方法创建IEnumerable索引,并使用Enumerable.Select扩展方法将每个索引投影到集合项:

var query = Enumerable.Range(0, obj.Count)
                      .Select(index => obj[index])
                      ...
Run Code Online (Sandbox Code Playgroud)

  • +1,这是实现`IEnumerable <..>`的可行替代方法(特别是如果该类不受你的控制),我不理解downvote. (3认同)