首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在C#中删除(或取消)泛型数组列表中的对象?

如何在C#中删除(或取消)泛型数组列表中的对象?
EN

Stack Overflow用户
提问于 2020-07-23 19:08:17
回答 1查看 130关注 0票数 0

在我的数据结构类中,我的任务是创建一个给定类型的泛型对象的ArrayList。这本质上是一个类,它的行为就像一个数组,附加了一些额外的功能。看上去像这样。

代码语言:javascript
运行
复制
    public class GenericArray<T>
    {
        // The array
        private T[] array;
        private int size;

        // Constructor
        public GenericArray(int arrsize)
        {
            size = arrsize;
            array = new T[size + 1];
        }
        // Array methods
        public T getItem(int index)
        {
            return array[index];
        }
        public int getCount()
        {
            int count = 0;

            for(int i = 0; i < array.Length; ++i)
            {
                if(array[i] != null)
                    count++;
            }
            size = count;
            return count;
        }
    }

我们需要创建与数组交互的各种方法。当涉及到从数组中删除项时,我遇到了一个特殊的问题。我有一个deleteLast方法,我假设它只是将最后一项设置为null,如下所示:

代码语言:javascript
运行
复制
        public void deleteLast()
        {
            int i = this.getCount()-1;
            array[i] = null;
        }

但是,我得到的错误是不能将参数转换为null,因为T可能不是可空值类型,这是有意义的。但是,我不知道如何移除它们。我在Google上找不到任何有用的信息,所以我来到了Stack溢出。

任何帮助都是非常感谢的。谢谢:)

EN

回答 1

Stack Overflow用户

发布于 2020-07-23 19:11:40

为什么不使用List而不是T[]呢?这应该很容易解决你所有的问题!您还没有处理过数组大小更改(用于增长和减小数组大小)、枚举等方面的情况。理想情况下,我应该实现IEnumerable并实现其余的函数!

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63061469

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档