Поиск номера строки - C#
Формулировка задачи:
Здравствуйте. Задача такая, я ввожу строку чисел (например "2,3,7,11"), мне нужно найти эту строку в файле и номер строки где находятся данные.
Текстовый файл "log.txt" такой:
1,2,3,4
2,3,7,11
5,6,7,10
using System.IO;
using System.Collections.Generic;
using System.Linq;
using System.Text;
class ConsoleApplication1
{
public static void Main()
{
//всего сколько строк в файле
try
{
using (StreamReader s = new StreamReader("log.txt"))
{
String line;
int i = 0;
while ((line = s.ReadLine()) != null)//читаем по одной линии, пока не конец
{
i++;
}
Console.WriteLine("Line counts:" + i.ToString());
}
}
catch (Exception e)
{
Console.WriteLine(e);
}
//находим строку "2,3,7,11"
try
{
string path = "log.txt"; //путь
string s = File.ReadAllText(path);
Console.Write("Введите слово которое ищите: \n");
string f = ("2,3,7,11");
Console.WriteLine(f);
if (s.Contains(f))
{
Console.WriteLine("слово содержится в тексте");
}
else
{
Console.WriteLine("такого нет");
}
}
catch (Exception ex)
{
Console.WriteLine(ex);
}
Console.ReadKey();
}
}Решение задачи: «Поиск номера строки»
textual
Листинг программы
string[] s = File.ReadAllLines(@"E:\log.txt").ToArray();
string f = ReadLine(); string s1 = Join("", s.Where(v => v == f).Distinct());
WriteLine(s1 != "" ? $"{s1}; Строки: {(Join(", ", s.Select((v, i) => (v == f) ? i + 1 : 0).Where(v => v != 0)))}" : "Совпадений нет");
ReadLine();