Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Empfohlene Antworten

Veröffentlicht

Hey weiß jemand von euch wie ich es am besten hinbekomme in meinem Array wo z.b.

123456

124567

123456

123456

123567

drin steht, wie ich da dann zählen kann wie öft die gleiche Zahl vorkommen.

Meine Vorstellung war es das Array einfach mit sich selbst vergleichen und wenn die leiche Zahl vorkommt mir irgendwo eine 1 merken und den inhalt aber irgendwie bekomm ich es nicht gebacken.

Ich hoffe ihr versteht mich was ich meine.

Am Ende sollte dann in einem Array stehen

Dim Profilnummer


Profilnummer(0) = "Es werden 3 Profile von der Nummer 123456 benötigt"

Profilnummer(1) = "Es werden 2 Profile von der Nummer 123567 benötigt"

grüßle

Das Einfachste dürfte wohl sein einfach ein Dictionary mit der dem Array Item als Key und der Anzahl als Value zu verwenden. Dann läufst du einfach mit ner Schleife über das Array und aktualisierst dein Dictionary entsprechend.

Kannst du mir das ein bisschen genauer erklären??? ich versteh das Dictionary nicht...

sorry

Ich habs jetzt so versucht

For i = 0 To MerkenArray.length - 1 Step i + 1

For j = 1 To MerkenArray.length - 1 Step j + 1

If MerkenArray(i) = MerkenArray(j) Then

k = k + 1

Point(i, i) = MerkenArray(i)

Point(i, i + 1) = k

End If

Next

Next

dennoch kann ich ja von meinem blöde zweidiemensionalem array nicht die vordere dimension verändern das wäre nämlich perfekt dann hätte ich das ja -.-

Ein Dictionary Element besteht immer aus einem Schlüssel und einem Wert.

Wenn jetzt dein Array Strings enthält ist der Schlüssel des Dictionarys auch ein String und der Wert eine Zahl um die Anzahl der Vorkomnisse im Array zu merken.

Dictionary<string, int> dict = new Dictionary<string,int>();

Wenn du jetzt mit der Schleife über dein Array läufst schaust du für jedes Element ob sich das schon in deinem Dictionary befindet. Wenn nicht dann fügst du es hinzu und setzt die Anzahl auf 1. Wenn es sich schon im Dictionary befindet erhöhst du einfach nur die Anzhal um 1.

Ein Dictionary Element besteht immer aus einem Schlüssel und einem Wert.

Wenn jetzt dein Array Strings enthält ist der Schlüssel des Dictionarys auch ein String und der Wert eine Zahl um die Anzahl der Vorkomnisse im Array zu merken.

Dictionary<string, int> dict = new Dictionary<string,int>();

Wenn du jetzt mit der Schleife über dein Array läufst schaust du für jedes Element ob sich das schon in deinem Dictionary befindet. Wenn nicht dann fügst du es hinzu und setzt die Anzahl auf 1. Wenn es sich schon im Dictionary befindet erhöhst du einfach nur die Anzhal um 1.

hey kannst du mir vielleicht noch kurz sagen wie ich des value abrufen kann?


        For i = 0 To MerkenArray.length - 1 Step i + 1

            k = 1

            For j = 1 To MerkenArray.length - 1 Step j + 1

                If MerkenArray(i) = MerkenArray(j) Then

                    k = k + 1


                End If

            Next

            If openWith.Values(MerkenArray(i)) = MerkenArray.length Then

            Else

                openWith.Add(MerkenArray(i), k)

            End If


        Next

der soll ja nicht nochmal eintragen wenn des array schon überprüft worden is und fertig=)

Damit ich endlich mal wieder was anderes als Java oder Flex (würg) machen kann hier das ganze als C# Beispiel:

static void Main(string[] args)
{
List<string> list = new List<string>() { "1", "2", "3", "1", "2", "1", "2", "2", "3", "1", };
Dictionary<string, int> dict = new Dictionary<string, int>();

for (int i = 0; i < list.Count; ++i)
{
if (dict.ContainsKey(list[i]))
{
dict[list[i]]++;
}
else
dict[list[i]] = 1;
}

foreach (KeyValuePair<string, int> p in dict)
{
Console.WriteLine("{0}: {1}", p.Key, p.Value);
}
Console.ReadKey();
}[/PHP]

Leider muss ich nochmal nerven, ich bekomm es einfach nicht in VB übersetzt.

Hab es soweit hinbekommen:

Dim dict As New Dictionary(Of String, String)

For i = 0 To MerkenArray.length Step i + 1

If dict.ContainsKey(MerkenArray(i)) Then

k = k + 1

dict.Add(MerkenArray(i), k)

Else

k = 1

dict.Add(MerkenArray(i), k)

End If

Next

For Each KeyValuePair In dict

Console.WriteLine("{0}: {1}", dict.Keys, dict.Values)

Next

Console.ReadKey

Naja ganz stimmt das aber auch nicht.

Genauer gesagt komm ich auf das hier nicht klar:

if (dict.ContainsKey(list))

{

dict[list]++;

}

else

dict[list] = 1;

}

Sorry=(

Moin!

Ich moechte noch eine neue Idee auf den Markt werfen, die sehr einfach zu implementieren ist:

1. Array sortieren

2. Alle Elemente durchlaufen und dabei

a) einen Zaehler hochzaehlen

B) merken, was das aktuelle Element ist zb: 123456

c) wenn der Wert des Elements wechselt, hast Du das aktuelle Element und die Anzahl der Elemente. Den Zaehler wieder zuruecksetzen.

So wies aussieht hab ich es geschafft...

danke für die Hilfe=)

Ich hab meine Idee mal umgesetzt:

        Dim elemente() As Integer = {1, 2, 3, 4, 2, 8, 2, 3, 8, 1, 1}


        Array.Sort(elemente)

        Dim zaehler As Integer = 0

        Dim zuZaehlen As Integer = elemente(0)

        For index As Integer = 0 To elemente.Length - 1

            If (elemente(index) <> zuZaehlen) Then

                Console.Out.WriteLine("Element " + zuZaehlen.ToString() + " kommt " + zaehler.ToString() + " mal vor.")

                zaehler = 1

                zuZaehlen = elemente(index)

            Else

                zaehler = zaehler + 1

            End If

        Next

        Console.Out.WriteLine("Element " + elemente(elemente.Length - 1).ToString() + " kommt " + zaehler.ToString() + " mal vor.")

@Christina

Wie hast Du es jetzt geloest? Poste doch Deine Loesung, damit auch andere etwas davon haben.

Meine Umsetzung:

Mein Array -> MerkenArray wir etwas weiter oben beschrieben mit verschiedenen Zahlen.


 Dim dict As New Dictionary(Of String, String)



        For i = 0 To MerkenArray.length - 1 Step i + 1

            If dict.ContainsKey(MerkenArray(i)) Then


                dict(MerkenArray(i)) = j + 1


            Else

                j = 1

                dict(MerkenArray(i)) = j

            End If

        Next

Ausgeben tu ich es dann so:
 For i = 0 To dict.Count - 1 Step i + 1

            Form1.TextBox3.Text &= dict.Values(i) & " mal " & dict.Keys(i) & "  Profile" & System.Environment.NewLine

        Next

Grüßle

Meine Umsetzung:

Mein Array -> MerkenArray wir etwas weiter oben beschrieben mit verschiedenen Zahlen.


 Dim dict As New Dictionary(Of String, String)



        For i = 0 To MerkenArray.length - 1 Step i + 1

            If dict.ContainsKey(MerkenArray(i)) Then


                dict(MerkenArray(i)) = j + 1


            Else

                j = 1

                dict(MerkenArray(i)) = j

            End If

        Next

Ausgeben tu ich es dann so:
 For i = 0 To dict.Count - 1 Step i + 1

            Form1.TextBox3.Text &= dict.Values(i) & " mal " & dict.Keys(i) & "  Profile" & System.Environment.NewLine

        Next

Grüßle

Ich glaub aber das ich bei der oberen Schleife einen Denfehler habe, kann dass sein. nur irgendwie Funktioniert es bei mir=)^^

Nachdem ich mir gestern nochmal kurz Gedanken drüber gemacht habe ist mir auch die moderne Lösung eingefallen ;)

static void Main(string[] args)
{
List<string> list = new List<string>() { "1", "2", "3", "1", "2", "1", "2", "2", "3", "1", };

var groups = from l in list
group l by l into g
select new {Number = g.Key, Count = g.Count() };
foreach (var item in groups)
{
Console.WriteLine("{0}: {1}", item.Number, item.Count);
}
Console.ReadKey();
}[/PHP]

Dim dict As New Dictionary(Of String, String)



        For i = 0 To MerkenArray.length - 1 Step i + 1

            If dict.ContainsKey(MerkenArray(i)) Then

                 j = j +1

                dict(MerkenArray(i)) = j


            Else

                j = 1

                dict(MerkenArray(i)) = j

            End If

        Next

So stimmts=)

Erstelle ein Konto oder melde dich an, um einen Kommentar zu schreiben.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.