Дан файл test.txt, в нем записаны строки:
epS3A
epS3A
epS3A
epS3A
bMkWY
bMkWY
bMkWY
bMkWY
На примере видно, что строки одинаковые, но нужно "не" показать все строки, а показать только одну из повторений, вывод на экран должен быть таким:
epS3A
bMkWY
Как это сделать, не знаю(
Distinct
, не нужно их удалять, надо показать их на экране
пробовал считать и сравнивать как массив, но эффекта никакого, все равно все подряд показывает.
Цитата: -Покажите вашу попытку с массивом
var repeated_string = 1;
string[] file1 = File.ReadAllLines(@"C:\Users\Doe\Desktop\test.txt");
for (int i = 0; i < file1.Length; i++)
{
if (file1[i] == file1[i])
{
Console.WriteLine(file1[i] + " " + file1[i]);
}
}
Console.ReadKey();
Я бы сделал так:
string last = null;
foreach (var line in File.ReadLines(filename))
if (line != last)
Console.WriteLine(last = line);
А вообще, в коде из вопроса ошибка тут:
if (file1[i] == file1[i])
Должно быть так:
if (i != 0 && files[i-1] != files[i])
Ну и выводить надо саму строку.
PS: Оба варианта работают только для подряд идущих одинаковых строк.
Вот рабочий пример решения задачи используя HashSet. Из вопроса не понятно, нужно ли выводить неповторяющиеся только подряд идущие строки или глобально уникальные среди всех строк, моё решение для второго случая. Это один из самых быстрых возможных вариантов решения для глобальной уникальности строк, конечно если файл не слишком большой и его уникальные строки могут вместиться в память. (запустить решение онлайн)
using System.Collections.Generic;
public class MainClass {
public static void Main() {
string[] strs = {"ab", "bc", "ab", "ab", "bc"};
HashSet<string> set = new HashSet<string>();
for (int i = 0; i < strs.Length; ++i) {
if (!set.Contains(strs[i])) {
System.Console.WriteLine(strs[i]);
set.Add(strs[i]);
}
}
}
}
Второе более короткое решение для того же случая глобальной уникальности строк можно сделать через Distinct метод. (запустить решение онлайн)
using System.Linq;
public class MainClass {
public static void Main() {
string[] strs = {"ab", "bc", "ab", "ab", "bc"};
foreach (string s in strs.Distinct()) {
System.Console.WriteLine(s);
}
}
}
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Хочу реализовать комнаты чата, и допустим, в комнате 5 и кто-то в комнату 5 пишет, то сгенерировать событие и переслать всем пользователям комнатыТо-есть...
Есть класс матрицы и метод, который возвращает определитель матрицы - DeterminantПо неведомым причинам выходит за пределы двумерного списка
На данный вопрос уже ответили: