制作自己的阵列

时间:2015-05-07 17:15:10

标签: c#

这可能是一个非常基本的问题,但实际上并不知道如何制作它。我想创建以下内容:

public class MyArray
{
    List<KeyValuePair<int, object>> myList = new List<KeyValuePair<int, object>>();

    public void Set_Value(int index, object value)
    {
        myList = myList.Where(a => a.Key != index).ToList();
        myList.Add(new KeyValuePair<int, object>(index, value));
    }
    public object Get_Value(int index)
    {
        if (myList.Any(a => a.Key == index)) return myList.FirstOrDefault(a => a.Key == index).Value;
        else return null;
    }
}
class Program
{
    static void Main(string[] args)
    {
        MyArray array = new MyArray();
        array[0] = "Hello world!";
    }
}

制作一个我操纵自己的阵列......

2 个答案:

答案 0 :(得分:1)

您可以在班级中添加索引运算符:

public object this[int index]
{
    get
    {
        if (myList.Any(a => a.Key == index)) return myList.FirstOrDefault(a => a.Key == index).Value;
        else return null;
    }
    set
    {
        myList = myList.Where(a => a.Key != index).ToList();
        myList.Add(new KeyValuePair<int, object>(index, value));
    }
}

请注意,您有几个机会来改进您的代码;我只是复制/粘贴它以显示索引操作符的机制。

答案 1 :(得分:0)

我认为你问的是你如何重载索引器操作符。

为此,请看这里: How do I overload the [] operator in C#

但是,我建议不要在这里重新创建轮子。实际使用数组或继承集合类可能更好。