Tableaux

De Banane Atomic
Version datée du 11 octobre 2019 à 12:13 par Nicolas (discussion | contributions) (→‎Déclaration)
(diff) ← Version précédente | Voir la version actuelle (diff) | Version suivante → (diff)
Aller à la navigationAller à la recherche

Déclaration

Csharp.svg
// il faut spécifié le type (string[]) pour pouvoir utiliser cette écriture
string[] strArray = { "string1", "string2" };

var strArray = new [] { "string1", "string2" };

var strArray = new [,]
{ 
    { "string11", "string12" },
    { "string21", "string22" }
};

var strArray = new string[10];

// tableau vide
var strArray = Array.Empty<string>();

Convertir explicitement un tableau en IEnumerable<T>

Un cast implicite existe en un tableau et un IEnumerable<T>.
Néanmoins dans certain cas on souhaite explicitement caster le tableau en IEnumerable<T>.

Csharp.svg
// Exemple de cas ou l'on souhaite explicitement caster le tableau en IEnumerable<T>
Methode(IEnumerable<int> items) {...}
Methode(params int[] items) {...}

int[] array = {1, 2};
Methode(array); // appel de la seconde occurence : Methode(params int[] items)
// pour pouvoir appeler la première occurence : Methode(IEnumrable<int> items)
// il faut explicitement caster le tableau en IEnumerable<T>

IEnumerable<int> enumerable = array.AsEnumerable();
IEnumerable<int> enumerable = (IEnumerable<int>)array;
IEnumerable<int> enumerable = array.Cast<int>();

// performance pour la convertion de int[] en IEnumerable<int> sur 1000000 passes :
// 0.032s    items.AsEnumerable()
// 0.321s    (IEnumerable<int>)items
// 0.492s    items.Cast<int>()

IndexOf / Contains

Csharp.svg
int index = Array.IndexOf(monTableau, element);

// test si un élément est présent dans le tableau
using System.Linq;
if(monTableau.Contains(element))

if (Array.IndexOf(monTableau, element) > -1)

Tableau de string → string

Csharp.svg
string s = String.Join(",", myStringArray));