Laden...

Äquivalent zu Records

Erstellt von bert21 vor 14 Jahren Letzter Beitrag vor 14 Jahren 1.413 Views
B
bert21 Themenstarter:in
24 Beiträge seit 2010
vor 14 Jahren
Äquivalent zu Records

Ich habe früher in Delphi programmiert und da gern Records oder Arrays aus Records genutzt. Was ist denn die äqivalente Verfahrensweise in C#? Ein Struct? Oder gibts da noch was anderes ...

4.207 Beiträge seit 2003
vor 14 Jahren

struct bzw class, je nachdem ob Du einen Value- oder einen Referencetype haben willst.

Wissensvermittler und Technologieberater
für .NET, Codequalität und agile Methoden

www.goloroden.de
www.des-eisbaeren-blog.de

B
bert21 Themenstarter:in
24 Beiträge seit 2010
vor 14 Jahren

ich will eine ini Datei einlesen, die im csv Format vorliegt.

z.B.

[PRE]string keyword1;string keyword2;date datum;int zahl;string name
string keyword1;string keyword2;date datum;int zahl;string name
string keyword1;string keyword2;date datum;int zahl;string name[/PRE]

usw.

Dann mache ich da ein struct draus

struct ini
{
string keyword1,
string keyword2,
date datum,
int zahl,
string name
}

und dann ?

4.207 Beiträge seit 2003
vor 14 Jahren

Was meinst Du mit "und dann"?

Wo genau liegt das Problem, bzw was genau ist Deine Frage?

Wissensvermittler und Technologieberater
für .NET, Codequalität und agile Methoden

www.goloroden.de
www.des-eisbaeren-blog.de

B
bert21 Themenstarter:in
24 Beiträge seit 2010
vor 14 Jahren

sorry - war wohl etwas unklar formuliert ...

also wenn ich das recht verstehe, ist ein struct ja so was wie eine Klasse. Also mache ich daraus kein Array, sondern Objekte. Wie greife ich denn darauf zu.

Bei einem Array of Record würde ich mit datensatz[2].keyword1 auf das Element zugreifen. Wie gehe ich denn bei einem struct vor?

P
67 Beiträge seit 2008
vor 14 Jahren

Also mache ich daraus kein Array, sondern Objekte.

fast... du brauchst ein Array aus Objekten.

Mit File.OpenRead(..) und String.Split(...) sollte das einlesen keine Probleme darstellen.

Religionskriege sind Konflikte zwischen erwachsenen Menschen, bei denen es darum geht, wer den cooleren, imaginaeren Freund hat

B
bert21 Themenstarter:in
24 Beiträge seit 2010
vor 14 Jahren

d.h.

// array List definieren

ArrayList list = new ArrayList(); 

// struct definieren

public struct iniDatei
{
string name,
int alter
}

// dann deklarieren

iniDatei datensatz;
datensatz.name = "PETER";
datensatz.alter = 30;

füllen / in ArrayList schreiben

list.add(datensatz);

// und dann zugriefen über 

list[0].name

meint Ihr das so?

F
10.010 Beiträge seit 2004
vor 14 Jahren

@bert21:
Hör einfach auf in Delphi zu denken.

1.
In .NET gibt es 2 selbsterstellbare typen.
Struct und Class.
Wer eine Struct benutzt muss schon genau wissen was er tut, also für dich eher Class.

2.
Dynamische Mengen werden nicht in Arrays gespeichert, sondern in Listen/Dictionaries o.ä.
In deinem Fall würde sich da ein Dictionary anbieten, dann kannst du per Name auf den eintrag zugreifen.
ArrayList gehört seit 2004 in die Mottenkiste.

3.
Wenn das eine Legacy Anwendung ist, ist das mit den INI's OK, ansonsten benutze das
im FW vorhandene system der ConfigFiles.

Auch bei .NET gibt es genauso wie z.b. torry.ru/net/com haufenweise libs,
die dir solche sachen abnehmen.
Für dein Vorhaben wäre FileHelper ideal.
http://www.filehelpers.com/

B
bert21 Themenstarter:in
24 Beiträge seit 2010
vor 14 Jahren

ok jetzt hab ichs - vielen Dank ....

49.485 Beiträge seit 2005
vor 14 Jahren

Hallo bert21,

beachte bei weiteren Fragen bitte auch [Hinweis] Wie poste ich richtig? Punkt 1.1.1.

herbivore

2.760 Beiträge seit 2006
vor 14 Jahren

Hat sich für mich am Anfang irgendwie eher nach einem ADO Record angehört. Auch wenn die Frage grundsätzlich schon beantwortet ist:
CSV-Dateien in DataTable einlesen