non-LINQ, lorsque votre collection implémente ICollection<T>
ou ICollection
:
bool allItemsUnique =
new HashSet<YourType>(yourCollection).Count == yourCollection.Count;
non-LINQ, lorsque votre collection ne met pas en œuvre ICollection<T>
ou ICollection
. (Cette version dispose d'une performance légèrement meilleure théorique que la première car elle éclatera tôt dès qu'un double se trouve.)
bool allItemsUnique = true;
var tempSet = new HashSet<YourType>();
foreach (YourType obj in yourCollection)
{
if (!tempSet.Add(obj))
{
allItemsUnique = false;
break;
}
}
LINQ. (La meilleure performance de cette version - lorsque votre collection implémente ICollection<T>
ou ICollection
- sera à peu près la même que la première solution non-LINQ Si votre collection n'implémente pas ICollection<T>
ou ICollection
alors la version LINQ sera moins efficace.)
bool allItemsUnique =
yourCollection.Distinct().Count() == yourCollection.Count();
LINQ fait partie de C# vous connaissez;) –
Ok, une pure solution non-LINQ .NET et une solution LINQ alors :-) – Holstebroe