Par « voie LINQ super cool », vous pourriez parler de la façon dont LINQ rend la programmation fonctionnelle beaucoup plus acceptable avec l'utilisation de méthodes d'extension. Je veux dire, le sucre syntaxique qui permet d'enchaîner les fonctions de manière visuellement linéaire (l'une après l'autre) au lieu de s'emboîter (l'une dans l'autre). Par exemple:
int totalEven = Enumerable.Sum(Enumerable.Where(myInts, i => i % 2 == 0));
peut être écrit comme ceci:
int totalEven = myInts.Where(i => i % 2 == 0).Sum();
Vous pouvez voir comment le deuxième exemple est plus facile à lire. Vous pouvez également voir comment plus de fonctions peuvent être ajoutées avec moins de problèmes d'indentation ou les parens de fermeture Lispy apparaissant à la fin de l'expression.
Beaucoup d'autres réponses indiquent que String.Join
c'est la voie à suivre, car c'est la plus rapide ou la plus simple à lire. Mais si vous prenez mon interprétation de la ` ` façon LINQ super cool '', la réponse est d'utiliser String.Join
mais de l'envelopper dans une méthode d'extension de style LINQ qui vous permettra d'enchaîner vos fonctions d'une manière visuellement agréable. Donc, si vous voulez écrire, il sa.Concatenate(", ")
vous suffit de créer quelque chose comme ceci:
public static class EnumerableStringExtensions
{
public static string Concatenate(this IEnumerable<string> strings, string separator)
{
return String.Join(separator, strings);
}
}
Cela fournira un code aussi performant que l'appel direct (au moins en termes de complexité de l'algorithme) et dans certains cas, rendra le code plus lisible (selon le contexte), surtout si un autre code du bloc utilise le style de fonction chaîné .