C#: list 中字段的模糊查找匹配實現

前言:
在遊戲中,關於在列表中 查找某行數據時,需要通過關鍵字匹配,去遍歷表中的數據,如果表中匹配到關鍵字,則返回該行數據,沒有則返回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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章