Поиск совпадений в текстовом файле - C#
Формулировка задачи:
Помогите провести поиск совпадений в текстовом файле!
У нас известно такие начальные данные, которые могут меняться, к примеру:
НР, НИ, НК, НО, НЦ, НТ, КА, КО
Также у нас есть текстовый файл, который содержит готовые наборы, на пример возьмем 3 строчки:
КА, КО, ЦА, ЦО, ДР, ДС, ДЗ, ДВ, НР, НИ, НК, НО, НЦ, НТ - строка 1
КА, КО, ЦА, ДВ, НР, НИ, НК, НО, НЦ - строка 2
КО, ЦА, ДС, ДЗ, ДВ, НР, НИ, НК, НО, НЦ, НТ - строка 3
Как сравнить начальные данные с текстовым файлом и узнать в какой строчке наиболее совпадений, после всего
вывести название строки - например строка 1(8 совп.), стр. 2(7 совп.), стр. 3(7 совпад.)?
Решение задачи: «Поиск совпадений в текстовом файле»
textual
Листинг программы
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
namespace ConsoleApplication1
{
class Program
{
static void Main()
{
string[] lines = File.ReadAllLines("D:\\File.txt", Encoding.Default);
Console.Write("Введите теги через запятую\n>");
string sub = Console.ReadLine();
Dictionary<int, int> spisok = new Dictionary<int, int>();
int count;
for (int i = 0; i < lines.Length; i++)
{
count = 0;
string[] temp = sub.Split(',').Select(x => x.Trim()).ToArray(); //разделяем строку запятыми, выбираем каждый элемент и убираем из него пробелы
foreach (var str in temp)//пробегаем по полученному массиву подстрок
if (lines[i].Contains(str)) //если в i-й строке содержится подстрока str,
count++;//то прибавляем счетчик
spisok.Add(i, count);//добавляем элемент в словарь с ключом i и значением count
}
foreach (var i in spisok)
Console.WriteLine("стр. {0} ({1} совп.)", i.Key, i.Value);
Console.ReadLine();
}
}
}