Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

1

12.10.2014, 19:35

C# Ienumerable<T> to IDictionary<TKey, TValue>??

Heyho,

ich hätte da eine kleine Frage, ist es möglich ein IEnumerable<T> in einen Typ des IDictionary<TKey, TValue> zu konvertieren?

also ohne das IEnumarable<KeyvaluePair<T1, T2>> zu nutzen?

Wäre euch super dankbar :)

Mfg

JP

Sylence

Community-Fossil

Beiträge: 1 663

Beruf: Softwareentwickler

  • Private Nachricht senden

2

12.10.2014, 19:43


3

12.10.2014, 19:48

was soll denn als Func<...> definiert werden, welcher Lambdaausdruck ist am vernünftigsten um so eine Schlüsselauswahlfunktion zu definieren?? ich weiß grad nicht ganz wie ich das mit dem delegaten regeln soll :(

BlueCobold

Community-Fossil

Beiträge: 10 738

Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer

  • Private Nachricht senden

4

12.10.2014, 19:52

Du musst doch selbst wissen was als Key geeignet wäre, wenn Du eine Menge von Objekten in eine Map-Struktur übertragen willst.
Für was brauchst Du so eine Konvertierung denn überhaupt?
Teamleiter von Rickety Racquet (ehemals das "Foren-Projekt") und von Marble Theory

Willkommen auf SPPRO, auch dir wird man zu Unity oder zur Unreal-Engine raten, ganz bestimmt.[/Sarkasmus]

5

12.10.2014, 20:02

Ich habe eine Zentrale Datenstelle, nach der Idee der Datenzebntrierten Architektur. Da soll ja jeder Typ rein geladen werden, der iwie für das Programm zur verarbeitung relevante Daten hat und diese möchte ich überall in meinem Code abrufen können. Das Problem jedoch wenn diese Zentrale Schnittstelle intern <object> aufnehmen kann und diese Schnittstelle beispielsweise: 10 Objekte von Color aufgenommen hat, 20 von Font, 100 von strings, muss ich diese ja iwie vernünftig wieder abrufen können und wie kann ich es denn sonst hinbekommen, wenn ich speziell den string der privaten Variable in Form1 abrufen möchte, der z.B heisst: string text ="hallo";

und den Hat die Schnittstelle aufgenommen in ihre Verarbeitungsliste. Und ich möchte ganz wo anders aus dieser Collection genau auf diesen String zugreifen, dafür hatte ich das gedacht, aber vielleich kritisieren ja einige die Umsetzung meiner Architektur. Meine Idee anfänglich war, es zu erlabuen, mehrere Objekte von dieser Klasse erzeugen zu können, welche dann den Typ spezifiziert, von welchem Typ nur objekte verwaltet werden sollen.(momentan ist die Zentrale Datenverwaltung ein Singelton)

P.s intern, damit die Verwaltung als Schlüssel den Namen der variablen in dem angegebenen Typ nimmt, löse ich das via Reflection, also die Funktion, die ein IDictionary<string, T> zurückgibt, da ist string der name der variable in dem angegeben Typ.

Legend

Alter Hase

Beiträge: 731

Beruf: Softwareentwickler

  • Private Nachricht senden

6

12.10.2014, 22:32

Ich verstehe noch nicht ganz wie du aus den 100 gespeicherten Strings den richtigen String rausbekommst.
"Wir müssen uns auf unsere Kernkompetenzen konzentrieren!" - "Juhu, wir machen eine Farm auf!"

Netzwerkbibliothek von mir, C#, LGPL: https://sourceforge.net/projects/statetransmitt/

Sacaldur

Community-Fossil

Beiträge: 2 301

Wohnort: Berlin

Beruf: FIAE

  • Private Nachricht senden

7

12.10.2014, 23:23

Wahrscheinlich wird er schon irgendeine Art der Unterscheidung haben (bspw. ein String als Key), weshalb sich aber auch die Frage stellen sollte, warum die Elemente nicht direkt in einem Dictionary<String, Object> abgelegt werden.

Welchen Grund gibt es denn, dass _alles_ in der gleichen Datenstruktur abgelegt werden soll? Die Verschiedenen Dinge (Spielstände, Grafiken, Sounds, Anzeigetexte, Highscoreeinträge, ...) müssen unterschiedlich gehandhabt werden (verschiedenes Laden, verschiedenes Speichern (sofern erforderlich), ...) und an den jeweiligen Stellen werden auch immer nur Elemente des gleichen Typs erwartet. Es wäre also sauberer und performanter, wenn es eine Unterteilung nach Typ geben würde. Entsprechend dürfte es wohl reichen, wenn es eine Art Ressourcenmanager gibt, der zwar alle Arten von Ressourcen verwaltet, wenn diese aber dennoch nach Typ unterschieden werden.
Spieleentwickler in Berlin? (Thema in diesem Forum)
---
Es ist ja keine Schande etwas falsch zu machen, als Programmierer tu ich das täglich, [...].

BlueCobold

Community-Fossil

Beiträge: 10 738

Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer

  • Private Nachricht senden

8

13.10.2014, 06:55

ahrscheinlich wird er schon irgendeine Art der Unterscheidung haben
Wenn dem so ist, gibt es keine Frage mehr danach, was als Key zu verwenden ist.
Teamleiter von Rickety Racquet (ehemals das "Foren-Projekt") und von Marble Theory

Willkommen auf SPPRO, auch dir wird man zu Unity oder zur Unreal-Engine raten, ganz bestimmt.[/Sarkasmus]

Sacaldur

Community-Fossil

Beiträge: 2 301

Wohnort: Berlin

Beruf: FIAE

  • Private Nachricht senden

9

13.10.2014, 10:01

ahrscheinlich wird er schon irgendeine Art der Unterscheidung haben
Wenn dem so ist, gibt es keine Frage mehr danach, was als Key zu verwenden ist.

Ja.
Es ist durchaus eine Vermutung meinerseits, beruhend auf der Tatsache, dass man später irgendwie auf die Inhalte zugreifen muss. Es könnte auch sein, dass der Threadautor nicht wissen wollte, welchen Wert er als Key nutzen soll, sondern wie die Funktion/Methode aussehen soll, die diesen liefert. (Wofür auch wieder daurauf hingewiesen wurde, dass das eigentlich bekannt sein sollte.)
Spieleentwickler in Berlin? (Thema in diesem Forum)
---
Es ist ja keine Schande etwas falsch zu machen, als Programmierer tu ich das täglich, [...].

Werbeanzeige