C# 使用List.FindAll和List.Find搜索文本文件
我是C#的初学者,试图通过文本文件进行搜索。我只是在测试它在快速小型应用程序上的工作方式,结果应该显示搜索到的唯一号码,然后在列表框中显示姓名和电话号码的记录,例如(001 John 0123456789) 这是我的密码:C# 使用List.FindAll和List.Find搜索文本文件,c#,winforms,C#,Winforms,我是C#的初学者,试图通过文本文件进行搜索。我只是在测试它在快速小型应用程序上的工作方式,结果应该显示搜索到的唯一号码,然后在列表框中显示姓名和电话号码的记录,例如(001 John 0123456789) 这是我的密码: private void SearchButton_Click(object sender, EventArgs e) { string match = ""; try { StreamReader inputFil
private void SearchButton_Click(object sender, EventArgs e)
{
string match = "";
try
{
StreamReader inputFile = File.OpenText("Transactions.txt");
List<string> TransList = new List<string>();
{
while (!inputFile.EndOfStream)
{
TransList.Add(inputFile.ReadLine());
}
TransList = TransList.FindAll(x=>x.Equals(match)).ToList();
string[] RecordsArray = TransList.ToArray();
foreach (string record in RecordsArray)
{
if (match == textBox1.Text)
{
DataListBox.Items.Add(RecordsArray[0]);
DataListBox.Items.Add(RecordsArray[1]);
DataListBox.Items.Add(RecordsArray[2]);
}
}
inputFile.Close();
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
private void SearchButton\u单击(对象发送者,事件参数e)
{
字符串匹配=”;
尝试
{
StreamReader inputFile=File.OpenText(“Transactions.txt”);
List TransList=新列表();
{
而(!inputFile.EndOfStream)
{
Add(inputFile.ReadLine());
}
TransList=TransList.FindAll(x=>x.Equals(match)).ToList();
string[]RecordsArray=TransList.ToArray();
foreach(RecordsArray中的字符串记录)
{
如果(匹配==textBox1.Text)
{
DataListBox.Items.Add(RecordsArray[0]);
DataListBox.Items.Add(RecordsArray[1]);
DataListBox.Items.Add(RecordsArray[2]);
}
}
inputFile.Close();
}
}
捕获(例外情况除外)
{
MessageBox.Show(例如Message);
}
}
您看到的问题是什么?当调用FindAll
时,match
的值为空字符串。我想您应该在一开始就将其值设置为textBox1.Text
。然后,应该删除if(match==textBox1.Text)
部分。不幸的是,它不起作用,现在它只返回输入的搜索编号…我建议在问题中包括您面临的问题,否则很难为您编写答案。无论如何,我建议您在官方文档中查看List.FindAll是如何工作的