[C#] Auf List<> Einträge zugreifen in partiellen Klassen

Nordlicht321

Cadet 1st Year
Registriert
Jan. 2015
Beiträge
10
Hallo liebe User,

ich habe das folgende Problem. ich habe in einer partial class meine List<> erstellt und auch in dieser Klasse Daten in die List eingelesen. Nun möchte ich in einer anderen partial class auf diese Daten zugreifen. Das Problem ist das ich keinen Zugriff auf diese Daten bekomme.
Kann mir jemand sagen wie man da vorgeht oder ob das überhaupt möglich ist?

Das ist die eine Klasse in der die List angelegt wird.

Code:
public partial class MainForm : Form
{
public void CmdStartClick(object sender, EventArgs e)
{
List<Koordinaten> KoordinatenListe = new List<Koordinaten>();
}
}


Und in dieser anderen Klasse möchte ich auf die Daten zugreifen.

Code:
public partial class MainForm
{
}


Vielen Dank für die Infos.
 
Du erstellst doch, so wie ich das sehe, eine lokale Variable in der Funktion CMDStartClick. Damit ist die Variable nach Beendigung der Funktion wieder gelöscht.
 
Hallo Nordlicht,

in deinem oben genannten Beispiel ist die Liste KoordinatenListe nur eine Liste innerhalb des Events CmdStartClick.

Du musst deine Liste als Property zur Klasse MainForm hinzufügen.

Code:
public partial class MainForm : Form {
  public List<Koordinaten>KoordinatenListe {get;set;}

}
public void CmdStartClick(object sender, EventArgs e)
{

}

PS: Wenn deine Klassen schon englisch bezeichnet werden, solltest du es auch so halten mit Properties sowie anderen Variablen, etc.
 
Okay, Anfängerfehler!

Danke das hilft schon mal weiter!
Ergänzung ()

Ich hätte nochmal eine Frage zum durchsuchen und vergleichen von Listen.

In meiner oben genannten List habe ich die 6 Variablen Startkoordinate-X, Startkoordinate-Y, Startkoordinate-Z, Endkoordinate-X, Endkooridnate-Y und Endkoordinate-Z eingelesen. Jetzt möchte ich über eine Schleife gleiche Positionen in der List suchen und diese dem Anwender ausgeben. Also Punkte die die selben X, Y & Z Koordinaten aufweisen.

Wie gehe ich am besten vor? For oder Foreach-Schleife? Mit einer If-Anweisung?

Vielen Dank schonmal!
 
Die erste Frage die Du dir dabei stellen solltest ist, möchtest du dich intensiver mit C# befassen oder nur so am Rande?

Die intensivere und bessere ist es, dieses mit LINQ durchzuführen. Das nimmt dir das prüfen und suchen in Listen komplett ab.

Wenn du erst mit dem Programmieren im allg. beginnst, solltest du vllt. erstmal mit Schleifen und Prüfungen probieren um erstmal ein Grundverständnis für Suchalgorithmen zu erhalten.

Solltest du weiterhin Probleme damit haben kannst du dich gern mit einem / deinem Beispiel nochmal melden (mit Code)
 
Ich wollte dich nicht davon abhalten LINQ zu benutzen, versteh mich da bitte nicht falsch. Nur LINQ sagt / zeigt dir nicht wie es mit Listen umgeht, d.h. du weißt nicht was intern passiert und wie du nun eigentlich genau zu diesem Ergebnis kommst. Deshalb meinte ich das so, das man sich erstmal mit den Suchen allgemein beschäftige sollte.
 
Ich hab es schon verstanden, aber ich denke für mich macht es mehr Sinn erstmal mit Schleifen zu beginnen!
Könntest du mir mal ein kurz Beispiel geben wie ich in meinem Fall eine Schleife am besten aufbauen würde?
 
Beim Programmieren ist immer Eigeninitiative gefragt, die Doku und Google werden Dein bester Freund. Gewöhn es Dir am besten direkt an. ;) Gerade Syntax und basiskonstrukte findet man in Hülle und Fülle und Du bekommst die Antwort schneller als im Forum.

Gerade die MSDN ist voll gefüllt mit Codebeispielen:
https://msdn.microsoft.com/en-us/library/6sh2ey19(v=vs.110).aspx

Google liefert:
http://www.dotnetperls.com/list
http://stackoverflow.com/questions/47752/remove-duplicates-from-a-listt-in-c-sharp

In der Schleife kannst Du wieder eine Schleife aufbauen und somit das aktuelle Objekt der äußeren Schleife mit allen Objekten der inneren Schleife vergleichen. Wenn die Liste sortiert ist, reicht auch eine Schleife in der Du das aktuelle mit dem letzten Objekt vergleichst.

Ob das performant ist, ist noch eine andere Frage, aber für Übungszwecke erstmal ausreichend. Linq macht aber auch nichts anderes, der Compiler baut Dir dann die Schleifen.
 
Zuletzt bearbeitet:
Zurück
Oben