Entwickler-Ecke

C# - Die Sprache - StringListe in c# ?


Sharpy78 - Do 27.12.07 14:20
Titel: StringListe in c# ?
Hallo,

ich möchte in einer eigenen Komponente eine StringListe übergeben wo ich mir meine Daten Zeilenweise abspeichern kann.
Ähnlich einer Listbox...

Wie stellt man das an?

Im Moment verwende ich den folgenen Typen, da ist im Objektinspektor aber nicht das normale "Memo" zu sehen sondern eine Eingabe für Objekte usw. :-(



C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
        private ArrayList _Items = null;

...

        public ArrayList MyItems
        {
            set {
                    _Items = value;
                    Invalidate();
            }
            get { 
                    return _Items;
            }
        }


Für jeden Tip dankbar, Frank...


Leuchtturm - Do 27.12.07 14:47

List<string> müsste das sein was du suchst


JüTho - Do 27.12.07 14:50

Hallo Frank,
user profile iconLeuchtturm hat folgendes geschrieben:
List<string> müsste das sein was du suchst

Zur Erläuterung: ArrayList ist, wie Du gemerkt hast, eine (variable) Liste beliebiger Objekte. List<string> ist ebenfalls so etwas wie eine ArrayList (ob das intern stimmt, glaube ich nicht, sie wirkt jedenfalls so), ist aber per Deklaration auf Elemente des Typs "String" festgelegt und deshalb möglichst immer vorzuziehen.

Eine andere Frage ist, ob Dir das innerhalb des Designers hilft. Wenn Du es dort als "Memofeld" bearbeiten willst, ist ein normaler String zu verwenden, der Zeilenumbrüche enthält ("\n" oder besser Environment.NewLine).

Jürgen


Sharpy78 - Fr 28.12.07 16:51

Also ich habe es nun umgestellt auf den Typen String.


C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
        private List<String> _Items = new List<string>();

...

        public List<String> MyItems
        {
            set
            {
                _Items = value;
                Invalidate();
            }
            get
            {
                return _Items;
            }
        }


Nur kann ich keine neuen Einträge im Objektinspektor hinzufügen.
Zur Laufzeit geht es super...

myView1.MyItems.Add("Item "+Convert.ToString(i));

Hmm ich denke ich mache noch irgendwas bei der Übergabe falsch...
Habt ihr noch einen Tip?

Gruß Frank


Sharpy78 - Fr 28.12.07 18:30

Nun wird's kritisch...

Jetzt kommt nach dem kompilieren immer eine Exception...


C#-Quelltext
1:
this.myView1.MyItems = ((System.Collections.Generic.List<string>)(resources.GetObject("myView1.MyItems")));                    



Ich denke mal das ich das Object (woher auch immer) nicht ordendlich zurückgebe.
:(

Wenn ich im Objektinspector was hinzufügen möchte kommt auch immer eine Fehlermeldung:

Constructor on type 'System.String' not found.


Was hab ich da vergessen/übersehen?

Moderiert von user profile iconChristian S.: C#-Tags hinzugefügt


Christian S. - Do 03.01.08 23:35

Hallo!

Ich kann Deinen Beschreibungen leider nicht allzu viel entnehmen. Ich glaube, Du musst mehr in Detail gehen. Vielleicht kannst Du das Projekt auch anhängen? Mit einer einzelnen Codezeile kommt man hier sicherlich nicht weiter :nixweiss:

Grüße
Christian