![]() |
Delphi-Mengen (set of) in CSharp (C#)
Hallo,
mit Delphi kann ich folgendes machen:
Delphi-Quellcode:
Damit ist es mir möglich, z.B. die Stunden 3, 5 und 10 in die Menge aufzunehmen und ich kann dann später überprüfen, welche Stunden ausgewählt wurden, also in der Menge drin sind.
TSkipHour = 0..23;
TSkipHours = set of TSkipHour; Wie kann ich das nun in C# implementieren? Mit einem enum und Flags müsste ich das ja total umständlich machen:
Code:
Bleibt mir da also nichts anderes übrig, als z.B. eine Boolean-Liste zu verwenden, wo ich für 0 bis 23 immer true oder false setze?
[Flags]
enum SkipHour: uint { 0 = 0x00000001, 1 = 0x00000004, 2 = 0x00000008 // usw.... } Viele Grüße Sascha |
Re: Delphi-Mengen (set of) in CSharp (C#)
Ist nicht Set Of eine Delphi-Spezialität die keine andere Programmiersprache so elegant realisiert? :gruebel:
|
Re: Delphi-Mengen (set of) in CSharp (C#)
Wäre es so kompliziert, ein uint zu verwenden und die Bits als bools?
Code:
Das ganze zur Not in eine kleine (eventuell generische) Klasse/Struktur packen und gut. Hatte so etwas mal in C++ geschrieben, aber das war spezialisiert auf ein bestimmtes Datenformat für einen Mikrocontroller.
uint myset = 0;
myset |= (1 << 8); // Setzt Stunde 8 myset &= ~(1 << 8); // Löscht Stunde 8 myset & (1 << 8) > 0; // Testet, ob Stunde 8 gesetzt ist @Roter Kasten: Die C++-STL kennt set als generische Container-Klasse. Ist natürlich kein Sprachfeature, kann dafür aber alles aufnehmen. Aber ansonsten ist das wohl so. Edit: Es gibt übrigens auch System.Collections.BitArray. Das macht ja im Prinzip schon all das. |
Re: Delphi-Mengen (set of) in CSharp (C#)
Zitat:
[edit] Zitat:
Zitat:
[/edit] |
Re: Delphi-Mengen (set of) in CSharp (C#)
Ok, danke Leute. Werde dann also ein Bit-Array verwenden, das ist ja im Prinzip das, was ich auch schon als einzige Lösung gesehen haben, dass ich eine Liste habe, wo ich die Werte true und false habe.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:07 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz