une méthode d'extension sur une collection nommée MeasurementCollection vérifie si la propriété Template.Frequency (Enum) de chaque élément a la même valeur.Vérifiez si tous les éléments d'une collection ont la même valeur
public static bool IsQuantized(this MeasurementCollection items)
{
return (from i in items
select i.Template.Frequency)
.Distinct()
.Count()==1;
}
modifier informations sur les classes sous-jacentes
MeasurementCollection : ICollection<IMeasurement>
IMeasurement
{
IMeasurementTemplate Template { get; }
......
}
Est-ce une bonne approche ou est-il une solution plus facile déjà Linq? Cette méthode sera utilisée intensément dans l'application.
Avez-vous des conseils à prendre avec moi, de retour à la planche à dessin?
Qu'est-ce que vous êtes la condition est importante lisibilité? la vitesse est-elle importante? quel est le scénario habituel. Qu'ils sont identiques ou qu'ils ne sont pas les mêmes? –
Basé sur le tag #arrays que vous avez mis sur cette question, pouvons-nous supposer que votre objet MeasurementCollection est stocké en tant que tableau ou ArrayList? Pouvons-nous obtenir un '.Count' d'un MeasurementCollection sans trop de frais généraux? Quelle réponse est correcte dépendra de savoir plus sur votre collection sous-jacente. – StriplingWarrior
Pourquoi vous ne voulez pas ajouter cette méthode (avec n'importe quelle implémentation) dans MeasurementCollection? Pourquoi utilisez-vous la méthode d'extension pour cela? Si cette fonctionnalité fait partie de cette abstraction particulière, montrez-la explicitement. –