Classes Utilitaires Courantes en C#

  1. La classe Math

La classe Math fournit des constantes et des méthodes statiques pour les fonctions trigonométriques, logarithmiques et autres fonctions mathématiques générales.

Constantes

  • E : La base du logarithme naturel, représentée par la constante e.
  • PI : Le rapport de la circonférence d'un cercle à son diamètre, représenté par la constante π.
  • Tau : Le nombre d'radians dans une révolution, représenté par la constante τ.

Méthodes Courantes

  • Abs(double x) : Renvoie la valeur absolue d'un nombre.
  • Acos(double x) : Renvoie l'angle dont le cosinus est le nombre spécifié.
  • Asin(double x) : Renvoie l'angle dont le sinus est le nombre spécifié.
  • Atan(double x) : Renvoie l'angle dont la tangente est le nombre spécifié.
  • Ceiling(decimal d) : Renvoie la plus petite entière supérieure ou égale au nombre décimal spécifié.
  • Cos(double x) : Renvoei le cosinus de l'angle spécifié.
  • DivRem(decimal a, decimal b, out decimal result) : Génère le quotient et le reste de la division de deux nombres signés.
  • Pow(double x, double y) : Renvoie le nombre spécifié élevé à la puissance spécifiée.
  • Floor(decimal d) : Renvoie le plus grand entier inférieur ou égal au nombre décimal spécifié.
  • Max(double x, double y) : Renvoie le plus grand des deux nombres.
  • Min(decimal x, decimal y) : Renvoie le plus petit des deux nombres décimaux.
  • Round(decimal d) : Arrondit une valeur décimale à l'entier le plus proche. Les valeurs intermédiaires sont arrondies à l'entier pair le plus proche.
  • Sin(double x) : Renvoie le sinus de l'angle spécifié.
  • Sqrt(double x) : Renvoie la racine carrée du nombre spécifié.
  • Tan(double x) : Renvoie la tangente de l'angle spécifié.
  1. La classe String

La classe String représente une séquence de caractères immuable. Voici quelques-unes de ses propriétés et méthodes les plus utilisées :

Nom Description
Length Obtient le nombre de caractères dans la chaîne.
IndexOf(string value) Retourne l'indice de la première occurrence d'une sous-chaîne.
LastIndexOf(string value) Retourne l'indice de la dernière occurrence d'une sous-chaîne.
StartsWith(string value) Indique si la chaîne commence par une sous-chaîne spécifiée.
EndsWith(string value) Indique si la chaîne se termine par une sous-chaîne spécifiée.
ToLower() Convertit tous les caractères de la chaîne en minuscules.
ToUpper() Convertit tous les caractères de la chaîne en majuscules.
Trim() Supprime tous les espaces blancs de début et de fin de la chaîne.
Trim(params char[] trimChars) Supprime toutes les occurrences des caractères spécifiés du début et de la fin de la chaîne.
Remove(int startIndex) Supprime un nombre spécifié de caractères à partir d'une position spécifiée.
TrimStart() Supprime tous les espaces blancs de début de la chaîne.
TrimEnd() Supprime tous les espaces blancs de fin de la chaîne.
PadLeft(int totalWidth, char paddingChar) Aligne le contenu de la chaîne à gauche en remplissant avec des caractères spécifiés pour atteindre une largeur totale.
PadRight(int totalWidth, char paddingChar) Aligne le contenu de la chaîne à droite en remplissant avec des caractères spécifiés pour atteindre une largeur totale.
Split(params char[] separator) Divise la chaîne en sous-chaînes en fonction des caractères séparateurs spécifiés.
Replace(char oldChar, char newChar) Remplace toutes les occurrences d'un caractère spécifié par un autre caractère.
Substring(int startIndex) Extrait une sous-chaîne de la chaîne. Les caractères extraits commencent à une position spécifiée et continuent jusqu'à la fin de la chaîne.
Insert(int startIndex, string value) Insère une chaîne dans une autre chaîne à une position spécifiée.
Concat(params object[] args) Concatène les représentations de chaînes de plusieurs objets.
  1. La classe StringBuilder

StringBuilder représente une chaîne de caractères modifiable. Elle est conçue pour être plus efficace lors de la concaténation ou de la modification fréquente de chaînes par rapport à la classe String, qui est immuable.

Exemple d'utilisation :

// Crée un StringBuilder avec une capacité initiale de 50 caractères et initialisé avec "ABC".
 StringBuilder builder = new StringBuilder("ABC", 50);

 // Ajoute les caractères D, E, F à la fin.
 builder.Append(new char[] { 'D', 'E', 'F' });

 // Ajoute une chaîne formatée à la fin.
 builder.AppendFormat("GHI{0}{1}", 'J', 'K');

 // Affiche la longueur actuelle et le contenu du StringBuilder.
 Console.WriteLine($"Longueur : {builder.Length}, Contenu : {builder.ToString()}");

 // Insère "Alphabet : " au début.
 builder.Insert(0, "Alphabet: ");

 // Remplace tous les 'k' par des 'K'.
 builder.Replace('k', 'K');

 // Affiche la longueur finale et le contenu.
 Console.WriteLine($"Longueur finale : {builder.Length}, Contenu final : {builder.ToString()}");
 

Contrairement à String qui crée une nouvelle instance pour chaque modification, StringBuilder modifie son tampon interne. Cela le rend idéal pour les boucles où de nombreuses manipulations de chaînes sont effectuées.

Capacité et Allocation Mémoire

La capacité par défaut d'un StringBuilder est de 16 caractères. Vous pouvez spécifier une capacité initiale lors de la création ou la modifier ultérieurement via la propriété Capacity ou la méthode EnsureCapacity. Il est important de noter que si la nouvelle capacité est inférieure à la capacité actuelle, une exception peut être levée pour la propriété Capacity, tandis que EnsureCapacity ne fera rien dans ce cas.

  1. La classe Random

Random est utilisé pour générer des séquences de nombres pseudo-aléatoires.

Méthodes Courantes

  • Next() : Renvoie un entier aléatoire non négatif.
  • Next(int maxValue) : Ranvoie un entier aléatoire non négatif inférieur à maxValue.
  • Next(int minValue, int maxValue) : Renvoie un entier aléatoire dans la plage spécifiée (minValue inclus, maxValue exclus).
  • NextDouble() : Renvoie un nombre à virgule flottante aléatoire compris entre 0.0 (inclus) et 1.0 (exclus).
  • Sample() : Renvoie un nombre à virgule flottante aléatoire compris entre 0.0 et 1.0.
  1. La classe Array

Array est la classe de base pour tous les types de tableaux en C#.

Propriétés Courantes

  • IsFixedSize : Indique si le tibleau a une taille fixe.
  • IsReadOnly : Indique si le tableau est en lecture seule.
  • Length : Obtient le nombre total d'éléments dans toutes les dimensions du tableau.
  • LongLength : Obtient le nombre total d'éléments dans toutes les dimensions du tableau sous forme de long.
  • Rank : Obtient le nombre de dimensions (rang) du tableau.

Méthodes Courantes

  • Clear(Array array, int index, int length) : Définit un nombre spécifié d'éléments dans un tableau à la valeur par défaut (zéro, false ou null).
  • Copy(Array sourceArray, Array destinationArray, int length) : Copie une plage d'éléments d'un tableau source dans un tableau de destination.
  • CopyTo(Array array, int index) : Copie tout le contenu d'un tableau unidimensionnel dans un autre tableau unidimensionnel, en commençant à l'index spécifié.
  • GetLength(int dimension) : Obtient le nombre d'éléments dans la dimension spécifiée.
  • GetLongLength(int dimension) : Obtient le nombre d'éléments dans la dimension spécifiée sous forme de long.
  • GetLowerBound(int dimension) : Obtient la limite inférieure du tableau dans la dimension spécifiée.
  • GetValue(int index) : Obtient la valeur de l'élément à la position spécifiée dans un tableau unidimensionnel.
  • IndexOf(Array array, object value) : Recherche un objet spécifié et retourne l'indice de sa première occurrence dans le tableau unidimensionnel entier.
  • Reverse(Array array) : Inverse l'ordre des éléments dans un tableau unidimensionnel entier.
  • SetValue(object value, int index) : Définit la valeur de l'élément à la position spécifiée dans un tableau unidimensionnel.
  • Sort(Array array) : Trie les éléments d'un tableau unidimensionnel entier en utilisant l'implémentation IComparable de chaque élément.
  1. Expressions Régulières

Les expressions régulières (regex) sont des séquences de caractères qui définissent un modèle de recherche. Elles sont puissantes pour la manipulation et la validation de chaînes de caractères.

Utilisation :

// Crée un objet Regex avec un modèle.
 Regex regex = new Regex(@"\d+"); // Exemple : un ou plusieurs chiffres

 // Vérifie si une chaîne correspond au modèle.
 bool matchFound = regex.IsMatch("Il y a 123 pommes."); // Renvoie true
 

Les expressions régulières sont utiles pour la validation de formats (numéros de téléphone, emails), l'extraction d'informations et le remplacement de sous-chaînes.

  1. Chaînes de Formatage

Les chaînes de formatage permettent de créer des chaînes de caractères structurées à partir de variables et de constantes.

Exemples :

// Utilisation avec Console.WriteLine
 int a = 3, b = 4;
 Console.WriteLine("Les valeurs sont {0} et {1}.", a, b); // Affiche "Les valeurs sont 3 et 4."

 // Utilisation avec string.Format
 string formattedString = string.Format("Les valeurs sont {0} et {1}.", a, b); // "Les valeurs sont 3 et 4."
 

Format Standard des Nombres

Voici quelques spécificateurs de format standard courants pour les types numériques :

Spécificateur Description Exemple (en-US)
C (Monétaire) Affiche une valeur monétaire. (1234.567m).ToString("C2") -> $1,234.57
D (Décimal) Affiche un nombre entier. La précision spécifie le nombre minimum de chiffres. (123).ToString("D5") -> 00123
E (Exponentiel) Affiche un nombre en notation scientifique. (12345.678).ToString("E2") -> 1.23E+004
F (Fixe) Affiche un nombre avec un nombre fixe de décimales. (123.456m).ToString("F1") -> 123.5
G (Général) Représentation la plus compacte, soit fixe, soit scientifique. (123.456).ToString("G") -> 123.456
N (Nombre) Affiche un nombre avec des séparateurs de groupe. (12345.67).ToString("N2") -> 12,345.67
P (Pourcentage) Multiplie par 100 et ajoute le signe %. (0.456).ToString("P1") -> 45.6 %
X (Hexadécimal) Affiche un nombre en format hexadécimal. (255).ToString("X") -> FF

Exemples de Formatage :

decimal amount = 123.456m;
 Console.WriteLine(amount.ToString("C2")); // Affiche "$123.46"

 int quantity = 12;
 Console.WriteLine($"Quantité : {quantity:D3}"); // Affiche "Quantité : 012"

 double ratio = 0.9876;
 Console.WriteLine($"Taux : {ratio:P}"); // Affiche "Taux : 98.76 %"
 

Étiquettes: C# Math String StringBuilder Random

Publié le 19 septembre à 00h39