我正在创建一个从文件中读取数据的简单应用程序。到目前为止,我已经能够将所有数据读入arraylist。
但是,我需要让用户能够搜索arraylist并返回与其搜索相关的所有值。要搜索用户,请在文本框中输入关键字或内容,当他们点击搜索时,相关结果将显示在列表框中。
我需要什么代码才能搜索arraylist。
答案 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;
}
答案 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;