首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >从数组中删除元素:转换为列表,删除元素,转换回数组?

从数组中删除元素:转换为列表,删除元素,转换回数组?
EN

Stack Overflow用户
提问于 2013-04-09 15:21:07
回答 2查看 259关注 0票数 1

在我的程序中,我有一个叫做相册的类。我有一个数组,我的相册对象在创建时放入其中。如果用户愿意,我需要让用户稍后更改相册的albumName。如果用户愿意,我还需要让他们从Array中删除相册。据我所知,你不能只是从数组中删除对象,所以如果它们存储在一个列表中,而不是数组中,那就更好了。

根据我对列表的理解(我在此之前没有使用过它们),如果我想在稍后更改Album对象中的变量,我不能在创建时将Album对象放入List而不是Array中。如果我想更改数组,我也不能简单地删除并替换列表中的新的albumName对象,因为如果我这样做,相册对象将存储一个数组(myMusics),如果我这样做了,它将丢失。

所以我的问题是,我如何允许用户在修改相册对象的同时删除它们?我想我必须将存储它们的数组改为一个列表。然后从列表中删除对象,然后将列表中的对象改回原来的数组。这是正确的吗?如果这是正确的方式,我该如何做呢?

此外,如果它有帮助/有作用,则包含专辑的数组将在Form1中创建,专辑对象将从表单1中删除,但对专辑对象中的albumName的更改将在Form2中发生。

任何帮助都是非常感谢的。我对c#的使用还很陌生,所以如果能给出一个代码示例来帮助我理解,那就太棒了。谢谢。

相册类:

代码语言:javascript
运行
复制
public class Album
{
    public string albumName;
    private int totalMusics;
    private const int MAX_MUSICS = 100;
    private Music[] myMusics;

    public Album(string albumName)
    {
        this.albumName = albumName;
        totalMusics = 0;
        myMusics = new Music[MAX_MUSICS];
    }
}
EN

Stack Overflow用户

回答已采纳

发布于 2013-04-09 15:27:25

根据我对列表的理解(我在此之前没有使用过),如果我想在稍后更改Album对象中的变量,我不能在创建时将Album对象放入列表而不是数组中。

这只适用于结构。由于您使用的是(可变)类,因此您将能够在对象存储在List<Album>中时更改它们的属性。

所以你绝对应该使用List

除非你想要能够通过某些字段来查找专辑,例如通过AlbumName。如果是这样的话,您可以使用Dictionary<string, Album>并使用AlbumName作为密钥。

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

https://stackoverflow.com/questions/15895739

复制
相关文章

相似问题

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