前言:
在游戏中,关于在列表中 查找某行数据时,需要通过关键字匹配,去遍历表中的数据,如果表中匹配到关键字,则返回该行数据,没有则返回null。比如查找在好友列表查找某个好友时。
建立一个 data 数据:用于保存item 的所有信息 (如: id,title,content,icon 等)
public class Data{
public int id;
public string name;
public string title;
public string content;
public string icon;
...
}
实现:
private List<Data> onFindKeyWord(string str, List<Data> list){
List<Data> m_list= new List<Data>();
int count = list.Count;
for(int i=0; i<count; i++){
Data data = list[i];
if(data.name.Indexof(str) != -1)
{
m_list.Add(data);
}
}
return m_list; // 返回新的列表,符合模糊查询的结果列表
}
用foreach 遍历, 通过name模糊查找
private List<Data> onFindKeyWord(string str, List<Data> list){
List<Data> m_list= new List<Data>();
foreach(Data data in list)
{
if(data.name.Indexof(str) != -1){
m_list.Add(data);
}
}
return m_list;
}
使用 list.Find(); 通过name 精确查找,不存在返回null
private List<Data> onFindKeyWord(string str, List<Data> list){
List<Data> m_list= new List<Data>();
Data data = list.Find(m_data=> m_data == str);
// 需要判断是否存在
if(data != null){
m_list.Add(data);
}
return m_list;
}
关于 list 的更多使用方法,请参考:
http://www.cnblogs.com/AdaLoong/p/5528917.html