Porównanie dwóch tablic/txt

0

Witam.

Jak zrobić żeby program porównywał dwie tablice/pliki txt ze sobą, a następnie usuwał takie same elementy jakie są w tablicy 2 z tablicy 1?

Mam nadzieję że wiecie o co mi chodzi :)

0

Cholibka, nie rozumiem może pokażesz kod który do tej pory napisałeś i w czym problem może ktoś zrozumie co chcesz osiągnąć...
A tak na serio to dwie pętle iterujesz po elementach pierwszej tablicy i dla każdego elementu sprawdzasz czy istnieje w drugiej tablicy, jak jest to usuwasz jak nie ma to nie usuwasz.

0

kurczę, trudno to wytłumaczyć :D

Może tak:
Wczytuję sobie pliki do array'a -

string[] Jeden= System.IO.File.ReadAllLines(@"Jeden.txt"); 
string[] Dwa= System.IO.File.ReadAllLines(@"Dwa.txt"); 

W tablicy "Jeden" mam:

aa
bb
cc

A w tablicy "Dwa":

xx
aa
yy

I teraz chciałbym żeby z tablicy "Dwa" usunęło mi "aa"

3

string[] wynik = dwa.Except(jeden).ToArray();

0

Z Except trzeba uważać, bo on nie tylko usunie elementy ze zbioru 1, które znajdują się w zbiorze 2, ale dodatkowo zrobi distinct na zbiorze 1. Najłatwiej będzie to zaprezentować na przykładzie.


      var one = new[]
      {
        "aaa",
        "bbb",
        "ccc"
      };

      var two = new[]
      {
        "ddd",
        "eee",
        "aaa",
        "eee"
      };

      var result = two.Except(one).ToArray();

Wg mnie spodziewanym wynikiem powinna być tablica ["ddd", "eee", "eee"], zaś będzie ["ddd", "eee"].

1

O borze. :|

Nie ma żadnego distinct. Except zwraca zbiór, a zbiór z definicji nie może zawierać dwóch takich samych elementów.

Zawsze można napisać:

two.Where(x => !one.Contains(x)).ToArray();

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0