我希望用户能够在PhraseManager中添加一个短语,但也可以让它自动分配一个ID,以便他们可以轻松地使用该短语(播放文本到语音,删除等)。
private List<Phrase> phrases;
public PhraseManager()
{
phrases = new List<Phrase>();
}
public void AddPhrase (Phrase p)
{
phrases.Add(p);
}
public Phrase[] GetPhrases()
{
return phrases.ToArray();
}
public void PlayPhrase(int id)
{
Phrase toBePlayed = phrases.Find(x => x.GetId() == id);
toBePlayed.Play();
}
public void RemovePhrase (int id)
{
phrases.Remove(phrases.Find(x => x.GetId() == id));
}
}
这是我的代码,显示了列表数组
public void ShowPhrases(Phrase[] phrases)
{
Console.WriteLine("______Phrases______");
foreach (Phrase p in phrases)
{
Console.WriteLine(p.GetId() + ") " + p.GetPhrase());
}
Console.WriteLine("___________________");
}
我尝试在ShowPhrases中创建一个foreach循环,但我无法让它工作。我觉得好像我在正确的轨道上,但显然不是。我需要把它放在我的控制器方法中吗?
答案 0 :(得分:0)
如果您想为短语添加唯一ID,请考虑使用Guid。 id将始终是唯一的,并且可以在任何地方生成。例如,当您在Phrase默认构造函数中生成新的GUID作为id时,每个Phrase实例都将拥有自己的唯一ID。像这样:
public class Phrase {
public Guid _id
public Phrase(){
_id = Guid.NewGuid();
}
public Guid GetId(){
return _id
}
}