C# 自定义列表类实现 - 新手入门教程

本教程将引导你一步一步地创建自己的 C# 列表类,并提供示例代码帮助你理解基本概念。

列表类设计

我们首先定义一个名为 MyList 的类,它模拟了 C# 中 List 的基本功能。

class MyList
{
    private const int Max = 100;  // 设置最大容量
    private int count = 0;    // 记录当前元素个数
    private object[] items;  // 存储元素的数组

    public MyList()           // 构造函数,初始化数组
    {
        items = new object[Max];
    }

    public void Add(object item)  // 添加元素到列表
    {
        items[count] = item;
        count++;
    }

    public void RemoveAt(int index) // 删除指定位置的元素
    {
        if (index >= count) {
            throw new IndexOutOfRangeException(); // 抛出索引越界异常
        }
        for (int i = index + 1; i < count; i++) {
            items[i - 1] = items[i]; // 将后面的元素向前移动一位
        }
        count--;
    }

    public object Get(int index)  // 获取指定位置的元素
    {
        if (index >= count) {
            throw new IndexOutOfRangeException();
        }
        return items[index];
    }

    public int Count()   // 获取列表元素个数
    {
        return count;
    }

    public string Display()   // 将列表元素转换为字符串
    {
        string result = "";
        for (int i = 0; i < count; i++) {
            result += items[i] + " ";
        }
        return result;
    }
}

示例代码

以下是使用 MyList 类进行操作的示例代码:

class Program
{
    static void Main(string[] args)
    {
        MyList myList = new MyList();
        myList.Add("abc");
        myList.Add(1.23);
        myList.Add(2);
        myList.Add('a');
        Console.WriteLine("Element sequence: {0}", myList.Display());
        Console.WriteLine("Number of elements: {0}", myList.Count());
        Console.WriteLine("Element at position 1: {0}", myList.Get(1));
        Console.WriteLine("Removing element at position 2");
        myList.RemoveAt(2);
        Console.WriteLine("Element sequence: {0}", myList.Display());
        Console.ReadLine();
    }
}

总结

通过以上步骤,你已经成功创建了自定义的列表类 MyList。你可以根据需要修改代码,添加更多功能,例如插入元素、查找元素等。这只是一个简单的示例,你可以通过学习更多数据结构和算法来构建更复杂和高效的列表类。

希望本教程能帮助你理解 C# 自定义列表类的基本实现原理。

C# 自定义列表类实现 - 新手入门教程

原文地址: https://www.cveoy.top/t/topic/ndHw 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录