c#搜索arraylist

时间:2011-03-23 08:41:54

标签: c# search arraylist

我正在创建一个从文件中读取数据的简单应用程序。到目前为止,我已经能够将所有数据读入arraylist。

但是,我需要让用户能够搜索arraylist并返回与其搜索相关的所有值。要搜索用户,请在文本框中输入关键字或内容,当他们点击搜索时,相关结果将显示在列表框中。

我需要什么代码才能搜索arraylist。

2 个答案:

答案 0 :(得分:5)

也许你想做这样的事情:

将文件加载到List<string>

List<string> lines=File.ReadAllLines(filename);

List<string>中搜索:

IEnumerable<string> foundLine=lines.Where(s=>s.Contains(searchString));
foreach(string foundLine in lines)
  listBox1.Items.Add(foundLine);

请注意,string.Contains使用序数比较(区分大小写,文化不变),这可能不是您想要的。并且它也不处理非标准化的unicode序列。

您可以使用以下扩展方法来支持其他比较模式:

public static bool Contains(this string str, string value, StringComparison comparisonType)
{
  return str.IndexOf(value, comparisonType) >= 0;
}

https://connect.microsoft.com/VisualStudio/feedback/details/435324/the-string-contains-method-should-include-a-signature-accepting-a-systen-stringcomparison-value#

答案 1 :(得分:2)

您可以使用:

string searchString = txtSearch.Text.Trim();
ArrayList arrayResult = new ArrayList();
foreach(object obj in arrayList)
{
   if(searchString == Convert.ToString(obj))
   {
      arrayResult.Add(obj);
   }

}
ListBox.DataSource = arrayResult;