C#自动将ID添加到用户输入List的短语中

时间:2016-12-03 00:36:06

标签: c#

我希望用户能够在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循环,但我无法让它工作。我觉得好像我在正确的轨道上,但显然不是。我需要把它放在我的控制器方法中吗?

1 个答案:

答案 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
   }    
}