从列表中获取数据

时间:2014-01-02 17:10:22

标签: c#

我创建了一个包含soundfragments的列表,其中包含每个唯一编号的不同片段。

我需要在列表中搜索一个唯一的数字(Soundfragment),如果找到了这个数字,那么我需要返回找到的数字。如果没有找到,那么我必须返回null。 如何在列表中搜索唯一编号?

class BGExperience
{
    private List<Soundfragment> fragmenten; // = new List<Soundfragment>();
    private String theme;

    /******** constructoren ***************************************************/
    public BGExperience(String theme)
    {
      fragmenten = new List<Soundfragment>();
      this.theme = theme;
    }

    /******** properties ********************************************************/


    public String Theme
    {
        get { return Theme; }
    }

      /******** methoden ********************************************************/

    // returns Soundfragment with nummber nr
    // if it is unkown return null
    public Soundfragment GetFragment(int nr)
    {

    }

    // returns list with all fragments
    public List<Geluidsfragment> GetAlleFragmenten()
    {
        return fragmenten;
    }

2 个答案:

答案 0 :(得分:1)

public Soundfragment GetFragment(int nr)
{
   var sFragment = fragmenten.Where(f => f.Number == nr);

   if(sFragment.Any()) return sFragment.First();

   else return null;
}

我认为您的Soundfragment类具有Number属性。如果不同,请将其更改为您的媒体资源名称。

或者你可以用一行来完成:

public Soundfragment GetFragment(int nr)
{
   return fragmenten.Where(f => f.Number == nr).FirstOrDefault();
}

答案 1 :(得分:1)

您可以使用linq ...

执行GetFragment方法
var result = fragmenten.Where(s => s.NumberSoundFragment == nr).ToList();

然后你可以检查结果是否没有项目,返回null,如果没有,只返回第一项!