Laden...

Kann man ein Array zu erstellen, in dem der erste Wert String und der zweite Wert Integer ist?

Erstellt von icolor vor 6 Jahren Letzter Beitrag vor 6 Jahren 1.584 Views
Hinweis von Coffeebean vor 6 Jahren

Abgetrennt von Wie einen Objekt-String in ein Javascript-Object wandeln um ihn in Google-Charts zu verwenden?

Bitte nur eine Frage pro Thread [Hinweis] Wie poste ich richtig?

I
icolor Themenstarter:in
115 Beiträge seit 2008
vor 6 Jahren

Danke für die Auskunft.

Ein Frage habe ich noch. Ist es möglich ein Array mit zwei Feldern zu erstellen, wo der erste Wert String und der zweite Wert Integer ist?

Ich kenne bislang nur ...
string[][] ary = new string[10][];
ary[0] = new string[] {"a","1"};

Ich benötige jedoch den zweiten Parameter als Integer. Noch dazu muss die erste Zeile die Datenfelder beinhalten.

Beispiel:


chartKisten.data = [
           ['State', 'Count'],
           ['annulliert', 12],
           ['Gebaut', 25],
           ['Eingang', 65],
           ['Ausgang', 22],
           ['Geliefert', 5]
        ];

Was nehme da am besten?

D
985 Beiträge seit 2014
vor 6 Jahren

object ist Mother of all Types 😉

1
124 Beiträge seit 2012
vor 6 Jahren

Eigentlich ist es besser wenn man ich es selbst erarbeitet, aber ich war mal so nett und hab ein klienes Beispiel erstellt:


 public partial class Form1 : Form
    {
        private List<ChartObject> listChartObject = new List<ChartObject>();

        public Form1()
        {
            InitializeComponent();
            listChartObject.Add(new ChartObject("Ausgang", 22));
            listChartObject.Add(new ChartObject("Wasauchimmer", 1000));
            MessageBox.Show(listChartObject[0].ToString());
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            this.Close();
        }
    }

    class ChartObject
    {
        private string state;
        private int count; 

        public ChartObject(string state, int count)
        {
            this.state = state;
            this.count = count;
        }
        public override string ToString()
        {
            return state + " - " + count;
        }
    }
I
icolor Themenstarter:in
115 Beiträge seit 2008
vor 6 Jahren

Okay,

aber bei


object lmaa = new object[2];
lmaa[0] = new { fn = "Watt", ln = ""Count" }

habe ich ja selbiges im Object stehen.
Ich bräuchte aber nur { "Watt", "Count" }. Und daran hapert es bei mir.
Sorry

D
985 Beiträge seit 2014
vor 6 Jahren

@123thomas

Wenn du den Thread, von dem dieser hier abgetrennt wurde, berücksichtigst, dann geht es hier um eine JSON Serialisierung 😉


using System;
using Newtonsoft.Json;
					
public class Program
{
	public static void Main()
	{
		var data = new object[] {
			new object[] { "State", "Count" },
			new object[] { "annulliert", 12 },
			new object[] { "Gebaut", 25 },
			new object[] { "Eingang", 65 },
			new object[] { "Ausgang", 22 },
			new object[] { "Geliefert", 5 },
		};
		var dataJson = JsonConvert.SerializeObject(data,Formatting.Indented);
		Console.WriteLine(dataJson);
	}
}

Ausgabe:


[
  [
    "State",
    "Count"
  ],
  [
    "annulliert",
    12
  ],
  [
    "Gebaut",
    25
  ],
  [
    "Eingang",
    65
  ],
  [
    "Ausgang",
    22
  ],
  [
    "Geliefert",
    5
  ]
]

.net fiddle Demo

I
icolor Themenstarter:in
115 Beiträge seit 2008
vor 6 Jahren

@Sir Rufo

Damit hast du mir grade ein ziemliches Brett vor dem Kopf abgetrennt. Danke.
Zum Hintergrund, ich bin eigentlich FrontEnd Programmierer und mache derzeit die Arbeit von einem Kollegen der gekündigt hat. BackEnd Seitig und JSON mäßig fehlt mir anscheinend noch einiges.

Kannst Du mir noch kurz helfen, wie ich das so umbaue das ich das ganze Object in einer While Schleife fülle?


while (reader.Read())
{
...
}

Ich definiere mir im Moment das Object vor der Schleife.


var dataH = new object[] { };

Muss ich jetzt mit zwei Objekten arbeiten und diese in der Schleife zusammen führen? (Concat funktioniert nicht).
Ich denke, wenn ich das noch erklärt bekomme seid ihr mich los.

2.207 Beiträge seit 2011
vor 6 Jahren

Hallo icolor,

arbeite mit einer Liste und benutze .Add()

Gruss

Coffeebean

16.834 Beiträge seit 2008
vor 6 Jahren

Json kommt ursprünglich eigentlich aus dem Frontend; hat aber wegen seiner besseren Effizienz XML im Backend abgelöst.
Es heisst ja auch "JavaScript Object Notation".

I
icolor Themenstarter:in
115 Beiträge seit 2008
vor 6 Jahren

Jetzt wird ein Schuh draus.

Danke nochmals

57 Beiträge seit 2012
vor 6 Jahren

Mach dir halt einen Anonymen Typ oder eine entsprechende Klasse

OO gibts seit Platon - hatte der auch C#?

T
461 Beiträge seit 2013
vor 6 Jahren

Mach dir halt einen Anonymen Typ oder eine entsprechende Klasse

Also man sollte sich von anonyme Typen eher fernhalten da es sehr unübersichtlich/fehleranfällig werden kann... (meine Meinung)

Da ist die bessere Alternative eine eigene Klasse.

Ich habe den Titel mal angepasst, so dass Suchende auch etwas damit anfangen können. EDIT: Ich sollte beim Wort "Shift" im Titel das "f" nicht vergessen... 😄