J'ai ce code:
stringCutted = myString.Split("/"). // ???
et je voudrais stocker dans stringCutted
le dernier élément du string[]
après le fractionnement, directement, rapidement, sans stocker le tableau fractionné dans une variable et accéder à cet élément avec array[array.length]
.
Est-ce possible en C #?
Si vous utilisez .NET 3.5 ou supérieur, il est facile d'utiliser LINQ to Objects:
stringCutted = myString.Split('/').Last();
Notez que Last()
(sans prédicat) est optimisé pour le cas où la source implémente IList<T>
(Comme le fait un tableau unidimensionnel) donc ceci n'est pas itérer sur tout le tableau pour trouver le dernier élément. D'un autre côté, cette optimisation n'est pas documentée ...
stringCutted=myString.Split("/").Last()
Mais, juste pour info, si vous essayez d'obtenir un nom de fichier à partir d'un chemin, cela fonctionne mieux:
var fileName=System.IO.Path.GetFileName("C:\\some\path\and\filename.txt");
// yields: filename.txt
Puisque vous voulez une solution qui renvoie le dernier élément directement, rapidement, sans stocker le tableau fractionné, je pense que cela peut être utile:
stringCutted = myString.Substring(myString.LastIndexOf("/")+1);
Utilisez LINQ
"t/e/s/t".Split("/").Last();
Pour utiliser ce code, je saute le dernier élément du lien Url
.
string url = Request.Url.ToString().Substring(0, Request.Url.ToString().LastIndexOf('/'));