.NET 4.x Пользователь вводит 2 имени файла, прога копирует в 3 файл те строки, которые есть в 1 и во 2 файле без повтор - C#
Формулировка задачи:
Доброго времени суток.Ув.Гуру,влейте в чайника мозгов.
Помогите пожалуйста с задачей
Пользователь вводит 2 имени файла, прога копирует в 3 файл те строки, которые есть в 1 и во 2 файле без повторений,а так же программа подсчитывает количество слов в файле 1.
Решение задачи: «.NET 4.x Пользователь вводит 2 имени файла, прога копирует в 3 файл те строки, которые есть в 1 и во 2 файле без повтор»
textual
Листинг программы
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("Введите имя 1-го файла:");
HashSet<string> file1Lines = new HashSet<string>(File.ReadAllLines(Console.ReadLine(),Encoding.GetEncoding(1251))); //hashset - набор уникальных обьектов
Console.WriteLine("Введите имя 2-го файла:");
HashSet<string> file2Lines = new HashSet<string>(File.ReadAllLines(Console.ReadLine(),Encoding.GetEncoding(1251)));
HashSet<string> file3Lines = new HashSet<string>(file1Lines); //создаем копию строк 1-го файла
file3Lines.UnionWith(file2Lines); //обьединяем с строками 2-го
Console.WriteLine("Введите имя 3-го файла:");
File.WriteAllLines(Console.ReadLine(), file3Lines.ToArray(), Encoding.GetEncoding(1251)); //пишем в третий файл
Console.WriteLine("Количество строк в 1-м файле: " + file1Lines.Count);
//допустим слова разделены пробелом и знаками препинания - каждую строку делим на слова, считаем их количество, select сделает это для каждой строки, полученные количества слов суммируем
Console.WriteLine("Количество слов в 1-м файле: " + file1Lines.Select(x => x.Split(" ,.;:".ToCharArray(),StringSplitOptions.RemoveEmptyEntries).Length).Sum());
Console.ReadKey();
}
}
}