Aus einem Arraylist den größten Wert auslesen

Planet_Mars

Mitglied
Hallo alle zusammen,

ich hab mal ne Frage zum ArrayList. Gibt es dort die Möglichkiet den größten Wert auszulesen?
Mein ArrayList ist mit mehreren DateTime's gefüllt. Nun brauche ich das letzte Datum aus diesem ArrayList.

Gibts da eine Möglichkiet ohne viele Schleifen die das Programm langsamer macht?

Danke für eure Antworten.

Gruß
Marc
 
Hmm .. du könntest einfach nur die Ticks in die ArrayList schreiben, anstatt des DateTimes. Dann kannst es mit CopyTo in ein Array kopieren, welches dieses dann mit Sort() sortieren kann.
 
ein komplett anderer Ansatz wäre eine typisierte Auflistungsklasse zu erstellen in die du
die DateTime objekte hinzufügst. In die Klasse packst du dann einen member "MaxDate", welcher das größte Datum darstellt.
Beim hinzufügen eines neuen Wertes prüfst du dann nur ob der neue Wert größer ist, als
der bisherige "MaxDate".
z.B.:

Code:
public class MyDateTimeList
{
 private ArrayLIst m_InnerList = null;
 private DateTime m_MaxDate;

 public DateTime MaxDate
 {
  get { return m_MaxDate; }
 }

 public MyDateTimeList()
 {
  m_InnerList = new ArrayList();
  m_MaxDate = DateTime.MinValue;
 }

 public int Add(DateTime dateTime)
 {
  if( dateTime > m_MaxDate )
   m_MaxDate = dateTime;
  return m_InnerList.Add(dateTime);
 }
}

Wenn du der Auflistungsklasse nur Werte hinzufügst, und keine entfernst,
dann läuft alles gut. Solltest du Werte aus der Auflistung entfernen wollen,
musst du dabei natürlich aufpassen, dass der MaxValue Eintrag seine Richtigkeit behält.
 
Zurück