Entwickler-Ecke

C# - Die Sprache - Auflistungstypen initialisieren


miniC# - Fr 16.01.09 05:05
Titel: Auflistungstypen initialisieren
Hallo,

ich habe eine kleine Frage. Leider kenne ich nicht die genauen Fachausdrücke dafür deshalb ein wenig Code. Es gibt in C# die Möglichkeit Auflisttungstypen mit einigen Werten zu initialisieren.


C#-Quelltext
1:
List<int> meineListe = new List<int>(10){4,9,22,8}                    


meine Frage nun - Angenommen ich habe eine sehr große Liste/Array, so wird es doch eine Möglichkeit geben dies mit einem Standardwert zu füllen ? Oder muss ich dies immer selbst mit einer Schleife erledigen ?

edit :

etwas spezifischer : es geht um ein byte array.


C#-Quelltext
1:
private byte[] _buffer = new byte[ganzdollviele];                    


wenn ich dieses array so verwende , dann besteht es aus lauter Nullen, ich hätte es aber lieber , dass byte x = new byte() mit x = 255 initialisiert wird, ohne dass ich da nochmal mit ner schleife nachhelfe. ich hoffe so ist es verständlicher.


JüTho - Fr 16.01.09 11:21

Hallo,

tut mir leid, ich finde keinerlei Konstruktoren, bei denen ein bestimmter Anfangswert angegeben werden kann - weder bei Array noch bei List<T>. Also musst Du das wohl mit einer Schleife lösen, aber das sind ja nur 2 Zeilen.

Gruß Jürgen


Kha - Fr 16.01.09 13:02

Man könnte noch mit

C#-Quelltext
1:
Enumerable.Repeat((byte)2551024).ToList()/ToArray()                    

tricksen, da aber die endgültige Länge ja bekannt ist, erzeugt das unnötig viele temporäre Listen.
Von F# kenne ich
Array.create 1024 255uyund bin eigentlich davon ausgegangen, dass es eine ähnliche Funktion auch in Extension-Libs wie Mono Rocks [http://www.mono-project.com/Rocks][meta]Die Seite ist veraltet, schaut einfach ins Repository[/meta] oder Umbrella [http://www.codeplex.com/umbrella] gäbe. Naja, ein großes Defizit sind die zwei Zeilen wirklich nicht ;) .


miniC# - Fr 16.01.09 20:41

ok, vielen dank für die ausführlichen antworten , dachte schon es wäre mal wieder etwas grundlegendes an mit vorbeigerauscht ;)