c#在属性中使用ArrayLists

时间:2013-04-02 01:20:47

标签: c# class properties

我希望能够拥有一个名为Musician的类,其中一个名为Hits的规则/属性(这是一个数组列表,有两个名为ListHits()的方法和AddHits(字符串)

ListHits返回一个包含所有分裂符的字符串 用逗号来表达

AddHit - 为Hits arrayList添加一个命中。每次点击都是 一个长度在1到50个字符之间的字符串,没有l eading 或尾随空白区域。

我不知道怎么做这个我熟悉集合并为列表添加值,我知道如何设置基本属性

- 我已经试了好几个小时请帮助!

public class Musician : Celebrity
{

    private string _hits;

    public string Hits
    {
        get { return _hits; }
        set
        {

            if (value.Length < 1)
            {
                throw new Exception("need more then 2 characters");
            }
            if (value.Length > 50)
            {
                throw new Exception("needs to be less then 50 characters");
            }

            else
            {

                _hits = value.Trim();

            }

        }
    }

    public Musician()
    {
        //
        // TODO: Add constructor logic here
        //
    }

}

1 个答案:

答案 0 :(得分:2)

首先,您应该尝试使用List<string>而不是ArrayList。 {C}在版本2.0中添加generics之前使用ArrayListList<T>允许您保留有关列表中项目的输入信息,这使您可以更轻松地编写正确的代码。

您发布的代码似乎与您要求的详细信息不符,但是这样的内容应该按您的指定执行:

public class Musician
{
    private List<string> _hits;

    public string ListHits()
    {
        return string.Join(", ", _hits);
    }

    public void AddHit(string hit)
    {
        /*
         *  validate the hit
         */
        _hits.Add(hit);
    }
}

关键是使用string.Join_hits列表转换为逗号分隔的字符串。从那里开始,其余的只是基本的C#概念。