我创建了一个包含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;
}
答案 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,如果没有,只返回第一项!