Как-то спрашивал такой вопрос: убрать повторы строк из txt
Код оставляет уникальную строку. Но как быть если надо стереть все одинаковые строки, чтобы нигде не было повтора вообще?
пример такой(рандомно взял символы):
abcksg
p2haii
iuhjis
abcksg
СТАЛО ТАК:
p2haii
iuhjis
вроде бы понятно....
File.WriteAllLines(@"C:\Temp\some\out.txt",
File.ReadAllLines(@"C:\Temp\some\in.txt")
.GroupBy(l => l)
.Where(g => g.Count() == 1)
.Select(g => g.Key));
Этот код вычитывает все строки, потом группирует, используя в качестве ключа саму строку (т.е. складывает одинаковые строки в кучки), потом выбирает те группы, в которых ровно одна строка. Выбирает из групп ключи группы (т.е. строки), и пишет их в файл. Порядок совпадает с порядком в первоначальной последовательности т.к. в GroupBy порядок групп соответвует порядку встречаемости первого элемента группы во входной последовательности.
Если я Вас правильно понял, то вот такой способ имеет право на жизнь
Dictionary<string, int> dict = new Dictionary<string, int>();
// читаем данные из файла и пишем их в словарь
using (StreamReader file = new StreamReader("file.txt")) // откуда читаем
{
while(!file.EndOfStream)
{
string temp = file.ReadLine();
try
{
dict.Add(temp, 1);
}
catch (ArgumentException)
{
dict[temp]++;
}
}
}
using (StreamWriter file = new StreamWriter("file.txt")) // куда пишем
{
foreach (string key in dict.Keys)
{
if (dict[key] == 1)
file.WriteLine(key);
}
}
Топорно очень, но работать будет.
Современные инструменты для криптотрейдинга: как технологии помогают принимать решения
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости