c#在属性中使用ArrayList
我希望能够有一个名为music的类,它有一个名为Hits的规则/属性(这是一个数组列表,有两个名为ListHits()和AddHits(string)的方法) ListHits返回一个包含所有点击的字符串 用逗号隔开 AddHit–向Hits arrayList添加一个命中。每个命中都是 长度在1到50个字符之间且不带l的字符串 阅读 或尾随空白 我不知道该怎么做,我熟悉集合并向列表中添加值,我知道如何设置基本属性c#在属性中使用ArrayList,c#,class,properties,C#,Class,Properties,我希望能够有一个名为music的类,它有一个名为Hits的规则/属性(这是一个数组列表,有两个名为ListHits()和AddHits(string)的方法) ListHits返回一个包含所有点击的字符串 用逗号隔开 AddHit–向Hits arrayList添加一个命中。每个命中都是 长度在1到50个字符之间且不带l的字符串 阅读 或尾随空白 我不知道该怎么做,我熟悉集合并向列表中添加值,我知道如何设置基本属性 --我已经连续试了几个小时了,请帮忙 public class Musician
--我已经连续试了几个小时了,请帮忙
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
//
}
}
公共级音乐家:名人
{
私人字符串(u hits);;
公共字符串命中率
{
获取{return\u hits;}
设置
{
如果(值.Length<1)
{
抛出新异常(“需要超过2个字符”);
}
如果(value.Length>50)
{
抛出新异常(“需要少于50个字符”);
}
其他的
{
_hits=value.Trim();
}
}
}
公共音乐人()
{
//
//TODO:在此处添加构造函数逻辑
//
}
}
首先,您应该尝试使用列表,而不是ArrayList
ArrayList
是在2.0版中添加C之前使用的。List
允许您保留列表中项目的键入信息,这使您能够更轻松地编写正确的代码
您发布的代码似乎与您要求的详细信息不匹配,但类似的内容应该符合您的要求:
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);
}
}
公共类音乐家
{
私人名单(点击次数),;
公共字符串ListHits()
{
返回字符串。Join(“,”,_hits);
}
公共无效添加命中(字符串命中)
{
/*
*验证命中率
*/
_点击。添加(点击);
}
}
关键是使用string.Join
将\u hits
列表转换为逗号分隔的字符串。从这里开始,剩下的只是基本的C概念。向我们展示您拥有的内容,我们可以帮助您在其上构建。列表
比数组列表更合适。。“我已经连续试了几个小时了,请帮帮我!"如果这是真的,请发布一些代码并将问题缩小到一个或两个问题。抱歉,第一次发布--这是一个开始..那么具体问题是什么?好的,Hits是一个属性,它包含一个“艺术家”的点击列表。每个点击是一个长度在1到50个字符之间的字符串,没有前导或t栏杆空白。Hits是一个数组列表,它是私有的,只能通过listHits和addHit方法访问。我强制使用arrayList这很有帮助,但我需要使用arrayListOkay,因此Hits是一个属性,它包含“艺术家”的arrayList点击。每个点击是一个长度在1到50个字符之间的字符串,没有前导或后导尾随空白.Hits是一个数组列表,它是私有的,只能通过listHits和addHit方法来访问,并且必须使用arrayList