Zwei Listen vergleichen



  • Hallo Community,

    ich habe nicht direkt das Problem zwei Listen zu vergleichen, sondern viel, ob Teile der Listen identisch sind.

    Ich habe zwei .txt Dateien mit Datum, Uhrzeit und Wert

    1.1.2000 00:00:00 1000
    2.1.2000 00:00:00 1000
    ...
    

    Diese habe ich zuerst in ein Dictionary gepackt

    Dictionary<DateTime, double> DictZwei = new Dictionary<DateTime, double>();
    

    und nun in eine List konvertiert

    List<KeyValuePair<DateTime, double>> ListZwei = DictZwei.ToList();
    

    So weit ist alles in Ordnung.

    Jetzt will ich jeweils die Zeitangabe(Datum & Uhrzeit) vergleichen (auf die Sekunden genau)

    foreach (KeyValuePair<DateTime, double> help in ListEins)
                {
                    if(ListZwei.Equals(help))
                    {
                        ListResult.Add(help);
                    }
                    /*Oder mit contains
                    if(ListZwei.Contains(help))
                    {
                        ListResult.Add(help);
                    }*/
                }
    

    Was genau wird hier bei Equals vergleichen?
    Wie kann ich auf DateTime zugreifen/vergleichen?
    Mit contains prüft er den kompletten Inhalt.

    MfG und Danke im Vorraus,

    euer Haudegen



  • Habs hinbekommen:

    foreach (KeyValuePair<DateTime, double> help in ListEins)
                {
                    foreach (KeyValuePair<DateTime, double> helps in ListZwei)
                    {
                        if (help.Key == helps.Key)
                        {
                            ListResult.Add(help);
                        }
                    }
                }
    


  • Wofür brauchst du die Liste, wenn du doch die Werte schon im Dictionary hast? Der Vergleich ist dann einfacher (und auch performancemäßig schneller):

    if (DictZwei.ContainsKey(datetime))
    {
      ...
    }
    

Anmelden zum Antworten