C# 2D Array erste Zeile entfernen?

Guten Tag ich bin zurzeit an einem Projekt und die erste zeile soll aus dem Array gelöscht werden.

das ist meine Ausgabe und die erste zeile soll komplett gelöscht werden.

und das ist ein teil meines Codes:

for (int i = 0; i < sArrEinkauf.GetLength(0)-1; i++)
            {
                if (sArrEinkauf[i, 0] == sArrEinkauf[i + 1, 0]) 
                {
                    int summe = 0;
                    int temp = 0;
                    int temp2 = 0;

                    temp = Convert.ToInt32(sArrEinkauf[i, 4]);                     temp2 = Convert.ToInt32(sArrEinkauf[i + 1, 4]);                     summe = temp + temp2;                     sArrEinkauf[i + 1, 4] = summe.ToString();                     sArrEinkauf[i, 0] = "X";                 }

            }             string[,] tmparray = new string[0,0];             string[] temparray = new string[5];             for (int i = 0; i < sArrEinkauf.GetLength(0); i++)             {                 Console.WriteLine("\n");                 for (int j = 0; j < sArrEinkauf.GetLength(1); j++)                 {                                          sArrEinkauf[i, 0] = "A" + sArrEinkauf[i, 0];

                    Console.Write(sArrEinkauf[i, j] + "\t");
                }
            }

Bild zum Beitrag
Computer, Schule, programmieren, Array, C Sharp, Informatik
C# WPF User Control Typname nicht vorhanden?

Hallo an alle Programmierfreunde da draußen!

Ich wollte mir gerne eine Custom User Control erstellen, weil ich sie in dieser Art und Weise in fast jeder WPF-App verwende.

Mein C# - Code:

using System.Collections.Generic;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Input;
using System.Windows.Media;

namespace MenuBar
{
    public partial class MenuBar : UserControl
    {
        public List<string> Buttons;
        public SolidColorBrush Background;
        public SolidColorBrush Foreground;
        public SolidColorBrush BorderBrush;
        public Thickness BorderThickness;

    public MenuBar(int winHeight)
    {
        InitializeComponent();
        GridMenu.Height = winHeight;
        GridMenu.HorizontalAlignment = HorizontalAlignment.Stretch;
        GridMenu.VerticalAlignment = VerticalAlignment.Top;
    }

    public void Create()
    {
        ColumnDefinition c;
        for (int i = 0; i &lt;= Buttons.Count; i++)
        {
            c = new ColumnDefinition();
            c.Width = new GridLength(GridMenu.Width / Buttons.Count);
            GridMenu.ColumnDefinitions.Add(c);
        }

        Button btn;
        int col = 0;
        foreach (string s in Buttons)
        {
            btn = DefaultButton(s);
            GridMenu.Children.Add(btn);
            Grid.SetColumn(btn, col);
            col++;
        }
    }

    private Button DefaultButton(string title)
    {
        Button btn = new Button();
        btn.Width = GridMenu.Width / Buttons.Count;
        btn.Height = GridMenu.Height;
        btn.Background = Background;
        btn.Foreground = Foreground;
        btn.Cursor = Cursors.Hand;
        btn.BorderBrush = BorderBrush;
        btn.BorderThickness = BorderThickness;
        btn.Content = title;
        
        return btn;
    }
}

}

Mein XAML - Code:

<UserControl x:Class="MenuBar.MenuBar"
             xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
             xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
             xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
             xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
             xmlns:local="clr-namespace:MenuBar"
             mc:Ignorable="d"
             x:Name="Menu">
    <Grid x:Name="GridMenu"></Grid>
</UserControl>

Abgesehen davon, dass ich nicht sicher sagen kann, dass der Code so funktioniert, bekomme ich schon beim Build eine Fehlermeldung:

 MenuBar.xaml(9, 26): [CS0426] Der Typname "MenuBar" ist im Typ "MenuBar" nicht vorhanden.

Ich habe leider absolut keine Ahnung, wo der Fehler liegt, ich programmiere noch nicht so lange. Vielleicht kann mir jemand von euch helfen?

Das Projekt wurde als DesktopApplication im .NETCore v3.1 mit JetBrains Rider erstellt.

Danke für die Hilfe!

programmieren, C Sharp, Windows Presentation Foundation
Warum funktioniert mein Installer nicht?

Ich bin mit meinen Programm in Visual Studio fertig geworden und wollte, dass man dieses Programm mit einen Installer wie jedes andere Programm welches man im Internet herunterlädt auf dem Computer installieren kann. Dafür habe ich mir die Visual Studio Erweiterung "Microsoft Visual Studio Installer Projects" (https://marketplace.visualstudio.com/items?itemName=VisualStudioClient.MicrosoftVisualStudio2017InstallerProjects) heruntergeladen.

Nachdem ich die Erweiterung heeuntergeladen hatte, habe ich in der Projektmappe meines Programms ein neues Projekt(siehe Bild 1) hinzugefügt.

Danach habe ich im "Application Folder" (siehe Bild 2) eine Projektausgabegruppe mit der "Primären Ausgabe" und der Kofiguration "(aktiv)", den Ordner wo ich alle Bild- und Sounddateien gespeichert habe (im Projektordner ist er unter "...\bin\Debug" gespeichert) und das Icon der Exe-Datei hinzugefügt. In den Ordnern "User's Desktop" und "User's Programs Menu" habe ich jeweils eine Verknüpfung zur Primär Ausgabe hinzugefügt.

Als ich damit fertig war habe ich die Batch dazu ertellt (siehe Bild 3) und im Debug Ordner von Setup1 erschienen eine Exe und eine MSI Datei.

Als ich die besagte Exe Datei ausführte, hat sich der Installer ganz normal geöffnet und mein Programm installiert. Jedoch wenn ich versuche das Programm zu starten - egal ob über der Verknüpfung am Desktop oder PrograM Menü der die Exe Datei selber im Programm Ordner - passiert gar nichts. Laut dem Task-Manager öffnet sich zwar kurz ein Prozess, schließt sich aber Direkt wieder. Wenn ich das Programm über den Projektordner von Visual Studio öffne, öffnet sich das Programm ganz normal, also warum funktioniert das nicht über die installierte Version des Programmes?

Bild zum Beitrag
PC, Computer, Videospiele, Windows, Windows 7, Technik, Programm, Installation, programmieren, installieren, C Sharp, Technologie, Visual Studio, Visual Studio 2017
C# sind diese Rechenwege zu Zinsen so richtig?

Kurz und knapp: In der Schule haben wir das Thema Zinsen und ich will eine Art Converter zum ermitteln der Werte programmieren. Sind die Rechenwege so richtig?

Hier der Code:

Musste den Code in 3 Teile aufteilen.

       private void CmdAnzeigen_Click(object sender, EventArgs e)
        {
            double summe;
            double Laufzeit;
            double Kapital1, Kapital2, Kapital3;
            double Zinsen1, Zinsen2, Zinsen3;
            double Zinssatz1, Zinssatz2, Zinssatz3;

            // Hr (1, 2) = Hochrechnung. 

            if (Txt3.TextLength == 0)
                Laufzeit = 1;
            else
                Laufzeit = Convert.ToInt32(Txt3.Text);

            if (Chk1.Checked == true)
            {
                Zinsen1 = Convert.ToDouble(TxtEingabe1.Text);
                Zinssatz1 = Convert.ToDouble(TxtEingabe2.Text);

                double x = Zinssatz1;
                double y = Laufzeit;
                double Hr = System.Math.Pow(x, y);

                summe = Zinsen1 / Hr * 100;
                LblAnzeige.Text = "Das Ergebnis ist: " + summe + "\n" + "Der Rechenweg: " + Zinsen1 + " : " + x + "hoch" + y + " * 100" + "\n" +
                    "Zinsen geteilt durch Zinssatz (hoch Laufzeit) mal 100";
            }

           else if (Chk2.Checked == true)
            {
                Kapital2 = Convert.ToDouble(TxtEingabe1.Text);
                Zinssatz2 = Convert.ToDouble(TxtEingabe2.Text);

                double x = Zinssatz2;
                double y = Laufzeit;
                double Hr1 = System.Math.Pow(x, y);

                summe = Kapital2 * Hr1 / 100;
                LblAnzeige.Text = "Das Ergebnis ist: " + summe + "\n" + "Der Rechenweg: " + Kapital2 + " * " + x + "hoch" + y + " / 100" + "\n" +
                    "Kapital mal Zinssatz (hoch Laufzeit) geteilt durch 100";
            }
            else if (Chk3.Checked == true)
            {
                Zinsen3 = Convert.ToDouble(TxtEingabe1.Text);
                Kapital3 = Convert.ToDouble(TxtEingabe2.Text);

                double x = Kapital3;
                double y = Laufzeit;
                double Hr2 = System.Math.Pow(x, y);

                summe = Zinsen3 / Hr2 * 100;
                LblAnzeige.Text = "Das Ergebnis ist: " + summe + "\n" + "Der Rechenweg: " + Zinsen3 + " : " + x + "hoch" + y + " * 100" + "\n" +
                    "Zinsen geteilt durch Kapital (hoch Laufzeit) mal 100";
            }

        }

Falls ihr oben kaum was erkennt:

Ich denke es gibt beim Rechen mit z.b. "hoch 2" Probleme, im unteren Bild können niemals 100€ Zinsen rauskommen. Das ist so, wie wenn ich 100€ zur Bank bringe und nach 2 Jahren mein Geld verdoppelt hätte, echt ne' geile Bank.

Welchen Fehler gibt es beim "Hochrechnen"?

Ich rede hier vom Zinseszins, hatte diesen Begriff vergessen^^

Bild zum Beitrag
Computer, Schule, Mathematik, Programm, programmieren, C Sharp, Zinsen
Projekt in Visual Studio C# wie mache ich z.b. 100*5 hoch 2? Fragen zur Zinsrechnung in C#?

In der Schule haben wir das Thema Zinsen in Mathe, ich möchte nun eine Anwendung erstellen, welche mir z.b. bei der Suche der Zinsen nur durch das eingeben von dem Kapital, Zinssatz und der Laufzeit in Jahren das Ergebnis + Rechenweg gibt.

  1. Frage

Ich habe es schon geschafft, dass mir bei einer Laufzeit von einem Jahr das Richtige angezeigt wird, aber bei z.b. 2 Jahren wird der Wert einfach verdoppelt. Das ist natürlich nicht falsch, da ich * diesen Wert (Wert3) geschrieben habe. Aber es soll so sein, dass die Zinsen nach dem ersten Jahr auch mitgerechnet werden. So wie beim Taschenrechner bei der Hochrechentaste: ("X" und oben rechts ein "y").

Wie mache ich es, dass das mitgerechnet wird?

zweite Frage:

Wenn die Jahre/Laufzeit nur 1 ist, soll automatisch "1" bei Wert3 stehen, ohne es bei der TextBox einzugeben (Wert3 ist der Wert für die Jahre/Laufzeit). Wie mache ich das?

dritte Frage:

Ist es möglich Rechenwege mit Klammern zu schreiben? (Z.B. (Wert1 * Wert2 / 100) * Wert3. Ja bei dieser Rechnung wären Klammern unnötig, aber ihr wisst was ich meine.)^^

Vierte Frage:

Kann ich irgendwie z.b. der Variable "wert1" zu der Variable "Kapital" zuweisen bei einer if-Abfrage? Also dass ich beim If-Teil "Wert1 = Kapital" und bei der Rechnung "Kapital * …." eingeben kann? Wenn ich das so mache, kommt immer 0 raus, egal was ich in die TextBox eingebe.

Und letzte Frage:

Kann man irgendwie in die TextBoxen mit Kommata (,) schreiben? (Z.B. das Kapital ist 100,75€ groß), bei der Eingabe eines Kommas kommt immer der Fehler, dass die Zeicheneingabefolge falsch sei (oder so ähnlich).

Ich hoffe ihr könnt mir helfen. Ich mache dies hier: 1. um C# weiterzulernen und 2. Falls ich den Rechenweg mal vergesse, ich trotzdem diese Anwendung hier habe.^^

So sieht der Code aus (bin C# Anfänger):

Bild zum Beitrag
PC, Computer, Microsoft, Schule, Mathematik, programmieren, C Sharp, Visual Studio

Meistgelesene Fragen zum Thema C Sharp