c# - 索引器相对于对象数组的优势?

标签 c# arrays indexer

我在 MSDN - Indexers 中读到了索引器这解释了我们如何使用带有索引的数组之类的对象,即就像普通数组一样。但是,我认为我们可以创建像这样的对象数组

point[] array = new point[100];

那么 Indexer 相对于对象数组的特殊优势是什么?

最佳答案

如果您所追求的只是一个对象集合,那么索引器绝对没有数组的优势。但是,如果您需要存储状态和集合,这就是索引器的用武之地。

例如,考虑以下内容

public class Tree
{
    private Branch[] branches = new Branch[100];
    ...

    public string Name { get; set; }

    public Branch this[int i]
    {
        get
        {
            return branches[i];
        }
    }
}

Tree 拥有一个内部集合,但也有它自己的状态。拥有一个索引器属性允许简单地访问底层集合,例如

tree.Name = "Tree";
var branch = tree[0];

关于c# - 索引器相对于对象数组的优势?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25949676/

相关文章:

c# - 在 C# 中使用 .NET 3.5 将数据集转换为 JSON

arrays - 查找在线性时间内出现超过 n/4 次的所有元素

java - 菜单驱动的 Java 可在 3 个类别之间进行选择。如何将所有这些类合并到一个类中?

c# - 在集合中封装引用类型

c# - Orleans grains 中的单线程

C# 使用 linq 返回对象的通用列表

c# - 索引器的扩展方法,它们会好吗?

C# 索引器和 Linq

c# - 替换C#中所有目录和文件的名称

javascript - 检查数组中的任何项是否处于某种状态 : coffeescript