У меня проблема с отображением результата моего поиска в моем listView. У меня есть файл TXT, и я хочу искать только первые слова каждой строки файла. Я не знаю, какое условие мне следует поставить для этого ... Я читал о параметре FirstORDefault, но не работал с моим оператором if. Ниже мой текстовый файл и форма просмотра.
Я надеюсь получить известие от вас .... спасибо. Пожалуйста помоги.
private void btnSH_Click(object sender, EventArgs e)
{
FileStream history = File.Open("C:\\Users\\Sofia\\TestFolder2\\logfile.txt", FileMode.Open, FileAccess.Read);
StreamReader hRead = new StreamReader(history);
String viewHistory = hRead.ReadToEnd();
String[] hArray = viewHistory.Split('\n');
hRead.Close();
history.Close();
if (txtBoxSH2.Text != "")
{
string searchString = txtBoxSH2.Text;
historyLstBox.Items.Clear();
foreach (string line in hArray)
{
if (line.ToUpper().IndexOf(searchString.ToUpper())!= -1)
{
historyLstBox.Items.Add(line);
}
}
}
}
3 ответа
Вы можете использовать LINQ для предоставления более чистого кода:
private IEnumerable<string> GetMatchingLines(string filename, string word)
{
return File.ReadLines(filename)
.Where(line => string.Equals(line.Split(' ').FirstOrDefault(),
word,
StringComparison.InvariantCultureIgnoreCase));
}
Затем просто добавьте результат этого метода в historyLstBox.Items
.
Вы можете использовать line.StartsWith (searchString) вместо line.IndexOf (searchString)
http://msdn.microsoft.com/en-us/library/baketfxw(v=vs.110).aspx
Я бы использовал для этого File.ReadLines
.
string searchString = txtBoxSH2.Text;
if (searchString == "")
return;
foreach (string line in File.ReadLines("C:\\Users\\Sofia\\TestFolder2\\logfile.txt"))
{
if (String.IsNullOrWhitespace(line))
continue;
if (line.Split(' ')[0].ToUpper() == searchString)
historyLstBox.Items.Add(line);
}
Похожие вопросы
Новые вопросы
c#
C# (произносится как «see Sharp») — это высокоуровневый мультипарадигменный язык программирования со статической типизацией, разработанный Microsoft. Код C# обычно нацелен на семейство инструментов и сред выполнения Microsoft .NET, которое включает в себя .NET, .NET Framework, .NET MAUI и Xamarin среди прочих. Используйте этот тег для ответов на вопросы о коде, написанном на C#, или о формальной спецификации C#.