Plik XML i usuwanie duplikacji.

0

Witam,mam problem.

Tworze plik XML(500 losowych osób) .
Kody poniżej:

I teraz tak,mam plik z 500 osobami i chciałbym teraz wyrzucić z tej listy osoby które się powtarzają(pomijając id).

Czyli nie chce aby powtórzyła się osoba np:

Jan Kowalski 22
Jan Kowalski 22

22 to wiek.

Jak mogę tego dokonać w możliwie najprostszy sposób?

  private void button1_Click(object sender, EventArgs e)
        {



            button2.Visible = true;
            string[] Imie = { "Mariusz", "Mikołaj", "Przemek", "Krzysiek", "Patryk", "Janusz", "Lechu" };
            string[] Nazwisko = { "Heler", "Kowal", "Nowak", "Kowalski", "Dul", "Paleta", "Kawka" };
            Random losuj = new Random();

            XmlTextWriter writer = new XmlTextWriter("osoby.xml", System.Text.Encoding.UTF8);
            writer.WriteStartDocument(true);
            writer.Formatting = Formatting.Indented;
            writer.Indentation = 2;
            writer.WriteStartElement("Osoby");



            for (int i = 0; i < 500; i++)
            {
                createNode(i.ToString(), Imie[losuj.Next(0, 7)], Nazwisko[losuj.Next(0, 7)], losuj.Next(1, 50).ToString(), writer);
            }
            writer.WriteEndElement();
            writer.WriteEndDocument();
            writer.Close();
            MessageBox.Show("Utworzono plik XML ! ");


        }
        private void createNode(string pID, string pName, string pSurname, string pAge, XmlTextWriter writer)
        {
            writer.WriteStartElement("Osoba");
            writer.WriteStartElement("Id");
            writer.WriteString(pID);
            writer.WriteEndElement();
            writer.WriteStartElement("Imie");
            writer.WriteString(pName);
            writer.WriteEndElement();
            writer.WriteStartElement("Nazwisko");
            writer.WriteString(pSurname);
            writer.WriteEndElement();
            writer.WriteStartElement("Wiek");
            writer.WriteString(pAge);
            writer.WriteEndElement();
            writer.WriteEndElement();
        }

Plik XML wygląda tak:

<Osoby>

    <Osoba>
    <Id>1</Id>
    <Imie>Jan</Imie>
    <Nazwisko>Kowalski</Nazwisko>
    <Wiek>23</Wiek>
    </Osoba>

    .
    .(Kolejne osoby ....)
    .

    <Osoba>
    <Id>500</Id>
    <Imie>Marek</Imie>
    <Nazwisko>Nowak</Nazwisko>
    <Wiek>37</Wiek>
    </Osoba>

</Osoby>
0

Najlepiej wczytaj sobie tego XMLa do listy (deserializacja lub LINQ). I potem wyrzuć z listy powtórzenia - albo ifem, albo LINQ, Distinct... metod jest wiele.

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