所以基本上当按钮上发生click事件时会触发该方法,以检查字符串是否匹配:
id
,方法的代码是:
lbPlaylist.Items.Add(o.GetFragment(tbTitle.Text));
}
问题是我真的将对象或对象集合返回到列表框,我想只返回添加的字符串名称。我怎样才能到达他们?
答案 0 :(得分:1)
如果您只想在字符串列表中返回对象名称,请尝试使用
public List<string> GetFragment(String p)
{
List<SoundFragment> list1 = new List<SoundFragment>();
List<string> result = new List<string>();
//make a list and store every string
foreach(SoundFragment i in list1)
{
if (i.Title.Contains(p))
{
result.Add(i.Title);
}
}
//return all the objects from the new list that stores all the string contained in the fragments list
return result ;
}
答案 1 :(得分:1)
除了理查德的答案之外,您的主要问题就是这一行:
lbPlaylist.Items.Add(o.GetFragment(tbTitle.Text));
在此处,您将整个集合作为一个项目添加到ListBox
。你必须使用
lbPlaylist.Items.AddRange(o.GetFragment(tbTitile.Text).ToArray());
将每个对象添加为单个项目。
然后ListBox
将使用集合中对象的ToString()
方法显示每个对象的文本。如果您的SoundFragment
针对您的需求实施了适当的ToString()
方法,那么一切正常。否则,你必须像理查德建议的那样修改你的GetFragment
方法。