myCSharp.de - DIE C# und .NET Community
Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 
 | Suche | FAQ

» Hauptmenü
myCSharp.de
» Startseite
» Forum
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Suche
» Regeln
» Wie poste ich richtig?
» Forum-FAQ

Mitglieder
» Liste / Suche
» Wer ist wo online?

Ressourcen
» openbook: Visual C#
» openbook: OO
» Microsoft Docs

Team
» Kontakt
» Übersicht
» Wir über uns

» myCSharp.de Diskussionsforum
Du befindest Dich hier: Community-Index » Diskussionsforum » Entwicklung » Grundlagen von C# » Nur erste Reihe eines 2D-Arrays auslesen
Letzter Beitrag | Erster ungelesener Beitrag Druckvorschau | Thema zu Favoriten hinzufügen

Antwort erstellen
Zum Ende der Seite springen  

Nur erste Reihe eines 2D-Arrays auslesen

 
Autor
Beitrag « Vorheriges Thema | Nächstes Thema »
RafaelVogt RafaelVogt ist männlich
myCSharp.de-Mitglied

Dabei seit: 15.08.2019
Beiträge: 27


RafaelVogt ist offline

Nur erste Reihe eines 2D-Arrays auslesen

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Hallo liebe Community,

wie lese ich nur die erste Reihe meines Arrays aus?

C#-Code:
double[,] mass2ndm = new double[2, 12]
            {
                // 0     1     2     3     4     5     6     7     8     9     10    11
                { 0.00, 0.65, 1.55, 2.85, 3.60, 4.33, 6.00, 7.00, 7.90, 8.30, 10.0, 11.0 }, // X-Wert aktuelles Gewicht 0
                { 0.00, 2.00, 5.00, 10.0, 15.0, 20.0, 30.0, 40.0, 50.0, 60.0, 70.0, 80.0 }  // Y-Wert Endgewicht        1  
            };

            if (age == 2)
            {
                int count = 0;
                foreach (double element in mass2ndm)
                {
                    if (element <= weight)
                    {
                        Console.WriteLine(element);
                        count++;
                    }
                }

... also nicht meine y-Werte. Vielen Dank im Vorraus.
25.09.2019 11:07 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
Abt
myCSharp.de-Team

avatar-4119.png


Dabei seit: 20.07.2008
Beiträge: 13.946
Herkunft: Stuttgart/Stockholm


Abt ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

25.09.2019 11:17 Beiträge des Benutzers | zu Buddylist hinzufügen
RafaelVogt RafaelVogt ist männlich
myCSharp.de-Mitglied

Dabei seit: 15.08.2019
Beiträge: 27

Themenstarter Thema begonnen von RafaelVogt

RafaelVogt ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Wie gesagt, ich bin echt ein Neuling hier und habe jetzt 2 Stunden versucht dem hier gegebenen Link etwas abzugewinnen. Leider hab ichs bis jetzt nicht hinbekommen.

Ein Workaround wäre sicherlich den 2-D Array in 2 1-D Arrays umzuklabustern. Ich denke jedoch, dass hier der einfache Weg nicht der bessere ist.

Man könnt eauch versuchen das Zählen durch

C#-Code:
count

abzubrechen, wenn 12 Schleifendurchläufe erreicht sind.

Was meint Ihr?
25.09.2019 12:44 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
123thomas
myCSharp.de-Mitglied

Dabei seit: 21.12.2012
Beiträge: 118
Entwicklungsumgebung: Visual Studio 2017 Community


123thomas ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Hallo,

es gibt mehrere Wege nach Rom. :-P

Also wenn das 2D Array sich nicht verändert einfach mit einer for Schleife arbeiten. Wenn sich die Anzahl der Werte später ändern kann, dann würde ich mir das benötigte Array aus dem 2D Array holen und mit foreach ausgeben.

Gruß Thomas
25.09.2019 12:53 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
Abt
myCSharp.de-Team

avatar-4119.png


Dabei seit: 20.07.2008
Beiträge: 13.946
Herkunft: Stuttgart/Stockholm


Abt ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Hast auch nichts gelernt, wenn jemand Dir Dein Code macht. Machst halt mal nen Tutorial durch.
 [FAQ] Wie finde ich den Einstieg in C#?

Wenn Du die Grundlagen nicht beherschst und Grundkonzepte nicht verstehst, wirst Du von Problem zu Problem stolpern.
Jeder halt mal klein angefangen. Wird schon werden.
25.09.2019 12:54 Beiträge des Benutzers | zu Buddylist hinzufügen
RafaelVogt RafaelVogt ist männlich
myCSharp.de-Mitglied

Dabei seit: 15.08.2019
Beiträge: 27

Themenstarter Thema begonnen von RafaelVogt

RafaelVogt ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Da hast du Recht. Klar möchte ich nicht, dass wer einfach den code hinschreibt. Deswegen will ich auch die Lösung mit den 2 1D-Arrays nicht.

Den Code den du die vergangenen tage gesehen hast war komplett aus dem Kopf heraus geschrieben, mit dem, was mir dieses Buch

C# 8 mit Visual Studio 2019: Das umfassende Handbuch

als "Grundlagen" an die Hand gegeben hat.

Nur ist das alles ein relativ ungeordneter Haufen im Kopf. Aber der ordnet sich mit der Zeit. Da bin ich mir sicher.
25.09.2019 13:06 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
chilic
myCSharp.de-Poweruser/ Experte

Dabei seit: 12.02.2010
Beiträge: 2.037


chilic ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Dein foreach scheint das komplette Array auszulesen. Du möchtest aber nur [0, i] auslesen.
Das ist verständlicher als eine Schleife die zunächst aussieht als würde sie das ganze Array durchlaufen, es dann aber doch nicht tut.

Dieser Beitrag wurde 2 mal editiert, zum letzten Mal von chilic am 25.09.2019 13:13.

25.09.2019 13:11 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
Abt
myCSharp.de-Team

avatar-4119.png


Dabei seit: 20.07.2008
Beiträge: 13.946
Herkunft: Stuttgart/Stockholm


Abt ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Du musst ja nur den Link anschauen und durchlesen, den ich Dir gegeben hab.
Da ist das Konzept erklärt und es sind Beispiele enthalten.

Ja, wenn man neu in Themen ist muss man ab und zu in die Doku schauen.
So ist das eben ;-)
25.09.2019 13:12 Beiträge des Benutzers | zu Buddylist hinzufügen
Brymax
myCSharp.de-Mitglied

Dabei seit: 27.04.2018
Beiträge: 22
Entwicklungsumgebung: Visual Studio 2017 (Community)


Brymax ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Ich habe auch mal was aus dem Kopf gemacht Augenzwinkern

C#-Code:
int count = 0;

for (int i = 0; i < mass2ndm.Length / mass2ndm.Rank; i++)
{
    if (mass2ndm[0, i] <= weight)
    {
        Console.WriteLine(mass2ndm[0, i].ToString());
        count++;
    }
}

Alle Daten die du benötigst um die gewünschte Anzahl an Dimensionen zu durchlaufen gibt dir dein Array selbst. Eine Sache die noch wichtig ist. Bekommst du einen Link zu einer Dokumentation ist diese nicht der einzige Link der im WWW existiert. Mit einer Suche über Google, wären vllt. für dich verständlichere Dokus oder Tutorials gefunden worden smile
25.09.2019 14:52 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
RafaelVogt RafaelVogt ist männlich
myCSharp.de-Mitglied

Dabei seit: 15.08.2019
Beiträge: 27

Themenstarter Thema begonnen von RafaelVogt

RafaelVogt ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Vielen Dank Dir. Ich bin etwas missmutig, weil es mir nicht gelungen ist meine Theoriestückchen sinnvoll aneinanderzureihen, aber auf der anderen Seite auch froh darüber, dass hier Fragen wirklich sehr intensiv behandelt werden und eben nicht gleich die Lösung kommt. Das hat mich heute auf jeden Fall weiter gebracht.

Hier nun das fertige Programmstückchen:

C#-Code:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Tab._2._9_Durchschnittl.Körpermasse_von_Welpen_und_Junghunden
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("Endgewichtberechnung eines Welpen");
            Console.WriteLine("---------------------------------\n");

            Console.Write("Name des Hundes: ");
            string name = Console.ReadLine();

            Console.Write("Aktuelles Gewicht von {0} [kg]: ",name);
            double weight = Convert.ToDouble(Console.ReadLine());

            Console.Write("Aktueller Lebensmonat von {0} [m]: ",name);
            int age = Convert.ToInt32(Console.ReadLine());

            Console.WriteLine();

            double[,] mass_2nd_m = new double[2, 12]
            {
                // 0     1     2     3     4     5     6     7     8     9     10    11
                { 0.00, 0.65, 1.55, 2.85, 3.60, 4.33, 6.00, 7.00, 7.90, 8.30, 10.0, 11.0 }, // X-Wert aktuelles Gewicht 0
                { 0.00, 2.00, 5.00, 10.0, 15.0, 20.0, 30.0, 40.0, 50.0, 60.0, 70.0, 80.0 }  // Y-Wert Endgewicht        1  
            };

            if (age == 2)
            {
                int count = 0;

                for (int i = 0; i < mass_2nd_m.Length / mass_2nd_m.Rank; i++)
                {
                    if (mass_2nd_m[0, i] <= weight)
                    {
                        Console.WriteLine(mass_2nd_m[0, i].ToString());
                        count++;
                    }
                }

                Console.WriteLine("Count: {0}", count);
                Console.ReadKey();

                int index1 = count - 1;
                int index2 = count;

                Console.WriteLine();

                //            (y2-y1)
                // y = y1  +  -------  * (x-x1)
                //            (x2-x1)

                double final_age = mass_2nd_m[1,index1] + ((mass_2nd_m[1,index2]- mass_2nd_m[1,index1]) / (mass_2nd_m[0,index2]- mass_2nd_m[0,index1]))*(weight- mass_2nd_m[0,index1]);

                Console.WriteLine("Dein Hund {0} wird ca. {1}kg Endgewicht erreichen.", name, final_age);
            }

            Console.ReadKey();
        }
    }
}

Ich werde dies jetzt erstmal durchtesten. Danach ist der Rest eigentlich nicht weiter schlimm. Den Begriff

C#-Code:
.Rank

kannte ich noch nicht. Er ruft wohl die Dimension des Arrays ab.

Vielen Dank bis hier her an Euch alle. Ihr werdet von mir hören (-: Bin ja noch im Tal vor dem Berg (-:


mycsharp.de  Moderationshinweis von Abt (25.09.2019 16:36):

Keine Full Quotes  [Hinweis] Wie poste ich richtig?
 
25.09.2019 16:20 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
Th69
myCSharp.de-Poweruser/ Experte

avatar-2578.jpg


Dabei seit: 01.04.2008
Beiträge: 3.639
Entwicklungsumgebung: Visual Studio 2015/17


Th69 ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Dann schau dir auch mal die Methode  Array.GetLength an. Augenzwinkern
25.09.2019 18:09 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
MrSparkle MrSparkle ist männlich
myCSharp.de-Team

avatar-2159.gif


Dabei seit: 16.05.2006
Beiträge: 5.401
Herkunft: Leipzig


MrSparkle ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Zitat von RafaelVogt:
Er ruft wohl die Dimension des Arrays ab.

Das sind alles Infos, die du in der Doku finden kannst. Du mußt unbedingt in die Doku reinschauen, wenn du nach etwas suchst. Dazu ist sie da. Und es geht auch viel schneller, als jedesmal im Forum nachzufragen.

Siehe dazu auch  [Hinweis] Wie poste ich richtig?, Punkt 1.1 "Erst suchen und in die Doku schauen, dann posten", sowie  [Tipp] Schau in die Doku! - Möglichkeiten der Informationsgewinnung
25.09.2019 18:20 Beiträge des Benutzers | zu Buddylist hinzufügen
Baumstruktur | Brettstruktur       | Top 
myCSharp.de | Forum Der Startbeitrag ist älter als 9 Monate.
Der letzte Beitrag ist älter als 9 Monate.
Antwort erstellen


© Copyright 2003-2020 myCSharp.de-Team | Impressum | Datenschutz | Alle Rechte vorbehalten. | Dieses Portal verwendet zum korrekten Betrieb Cookies. 09.07.2020 03:18