Announcement

Collapse
No announcement yet.

was macht dieser Code

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • was macht dieser Code

    Hallo zusammen,

    ich kann kein C# muss aber ein kleines Codefragment verstehen (und zwar ohne Compiler).
    Es geht um folgendes:
    Code:
    Array aArray = aString.Split(new char[] { "&"[0]});
    Soweit ich die Doku verstanden hab wird der String als Array zurückgegeben und zwar getrennt nach & (vergleichbar mit dem StringTokenizer in Java)
    Aber was bedeutet das[0]?
    In der Doku ist Char mit großem C geschrieben, im Code aber mit kleinem c. Macht das einen Unterschied?

    Noch eine zweite Frage:
    aArray.Sort() sortiert, sofern es sich um Springs handelt, alphabetisch?

    Dim
    Zitat Tom Kyte:
    I have a simple philosophy when it comes to the Oracle Database: you can treat it as a black box and just stick data into it, or you can understand how it works and exploit it as a powerful computing environment.

  • #2
    "&" ist ein String. Und [0] ist das erste Zeichen davon. Sieht so aus als könnte derjenige der das programmiert hat C# nicht so richtig. Man kann auch einfach '&' schreiben. Dazu kommt noch dass es für Split auch eine Überladung mit String gibt, also sollte aString.Split("&", StringSplitOptions.None) eigentlich genauso funktionieren. Keine Ahnung warum man das so kompliziert hinschreibt

    https://msdn.microsoft.com/de-de/lib...v=vs.110).aspx

    Comment


    • #3
      Alles klar. Also wird lediglich der String anhand des Delimiters & in ein Array verpackt. & ist dann nicht mehr Teil des Springs nehme ich an.
      Danke.

      Bleibt noch die Frage wegen des string.Sort.
      Zitat Tom Kyte:
      I have a simple philosophy when it comes to the Oracle Database: you can treat it as a black box and just stick data into it, or you can understand how it works and exploit it as a powerful computing environment.

      Comment


      • #4
        Beim splitten sind nachher die benutzen Trennzeichen bzw. das Trennzeichen weg ja.

        Zum Array sort. Naherungsweise ist das alphabetisch je nachdem was du persönlich als alphabetisch verstehst. Beim sortieren wird die IComparable Schnistelle der enthaltenen Objekte verwendet. Und die IComparable Implementierung von string benutzt ein Culture abhängigen größer,kleiner,gleich-Vergleich. Je nach Culture des aktuellen Threads wirst du also ein leicht anderes alphabetisches Sortieren erhalten je nachdem was in der jeweiligen Sprache halt üblich ist. Wenn man ein bestimmtes Verhalten beim sortieren erzwingen will sollte man eine der Sort Überladungen benutzen der man einen IComparer mitgeben kann mit genau spezifiziertem Verhalten.

        In der Doku ist Char mit großem C geschrieben,
        Ist das gleiche. Bei den Bezeichnern gibt es bei den Basis Datentypen eigentlich immer 2 Varianten. Einmal die sprachunabhängige Version aus dem .Net Framework. Das wird ja in verschiedenen Sprachen benutzt und bringt die Klassen mit oder es gibt einen c# spezifischen Alias für diese Typen. C# ist ja eine C-artige Sprache also hat man auch Aliase entsprechend der althergebrachten c Nomenklatur.

        .Net-Typ -> C#-Alias
        Char -> char
        String -> string
        Int32 -> int
        Int64 -> long
        Float -> float
        Double -> double

        und weitere die mir gerade nicht einfallen.

        Comment


        • #5
          Ok. D.h. es wird mit deutschen Ländereinstellungen auch deutsch sortiert und bei französischen eben so wie es "französisch" richtig ist. Kein binary Sort.

          Danke.
          Zitat Tom Kyte:
          I have a simple philosophy when it comes to the Oracle Database: you can treat it as a black box and just stick data into it, or you can understand how it works and exploit it as a powerful computing environment.

          Comment

          Working...
          X