J'ai une collection de classe anonyme et je veux revenir une liste vide de celui-ci.
Quelle est la meilleure expression lisible à utiliser? p>
i si ce qui suit mais je ne sais pas pense qu'ils sont suffisamment suffisants: p> Remarque: je ne veux pas vider la collection elle-même. p> Toute suggestion! P> p>
4 Réponses :
Pour des raisons de performance, vous devez vous en tenir à la première option que vous avez proposée. P>
L'autre itérayez sur toute la collection avant de renvoyer une liste vide. P>
Parce que le type anonyme, il n'y a aucun moyen, dans le code source, pour créer une liste. Il y a cependant un moyen de créer une telle liste par la réflexion. P>
Étant donné que votre première suggestion fonctionne et devrait bien fonctionner - si la lisibilité est la seule question, pourquoi ne pas créer une méthode d'extension: Vous pouvez reflacter votre exemple à p>
En réalité, si vous utilisez une extension générique, vous n'avez même pas à utiliser de linq pour y parvenir, vous avez déjà le type anonyme exposé via T
public static IList<T> GetEmptyList<T>(this IEnumerable<T> source) { return new List<T>(); } var emp = MyCollection.GetEmptyList();
Quoi de quoi:
Enumerable.Empty<T>().ToList<T>();
C'est mieux si vous souhaitez revenir en Ineumable. Il est équivalent à renvoyer une nouvelle liste
Au lieu d'un type anonyme, il est peut-être temps de créer un concret?
@ODed: Oui, vous avez raison. Merci.