Avons-nous une sorte de collection Triple en C #

Je pensais garder trois informations pour chaque object d’une liste. Je peux donc créer une classe avec trois propriétés pour ces trois informations, puis créer une collection de ce type de classe … Mais je me demandais si .NET 3.5 (et non 4.0) avait une fonction intégrée pour cela? Par exemple, un dictionnaire … que l’on conserve deux informations pour chaque élément, clé et valeur … mais il me faut trois. Avons-nous quelque chose d’intégré pour cela?

Vous pouvez créer votre propre Tuple :

 public class Tuple : IEquatable{ public T1 Item1{ get; set; } public T2 Item2{ get; set; } public T3 Item3{ get; set; } public Tuple(T1 Item1, T2 Item2, T3 Item3){ this.Item1 = Item1; this.Item2 = Item2; this.Item3 = Item3; } public override bool Equals( object obj ) { if ( obj == null || (obj as Tuple) == null ) //if the object is null or the cast fails return false; else { Tuple tuple = ( Tuple ) obj; return Item1.Equals( tuple.Item1 ) && Item2.Equals(tuple.Item2) && Item3.Equals(tuple.Item3); } } public override int GetHashCode( ) { return Item1.GetHashCode( ) ^ Item2.GetHashCode() ^ Item3.GetHashCode(); } public static bool operator == ( Tuple tuple1, Tuple tuple2 ) { return tuple1.Equals( tuple2 ); } public static bool operator != ( Tuple tuple1, Tuple tuple2 ) { return !tuple1.Equals( tuple2 ); } } 

Créez votre propre classe sortingple:

 public class Triple { public T t{get;set;} public X x{get;set;} public Y y{get;set;} } 

C’est un moyen clair et plus facile à gérer que des méthodes telles que: Dictionary> et d’autres approches comme celle-ci.

La solution consistant à créer une classe générique de tuple similaire à celle ajoutée dans .Net 4 est expliquée dans d’autres réponses, mais j’estime qu’il est important d’indiquer qu’il serait peut-être préférable de créer une petite classe pour représenter sémantiquement les données que vous avez. stocker avec des propriétés significatives. Un tuple générique pourrait fonctionner maintenant, mais vous voudrez peut-être développer la fonctionnalité ultérieurement.

Si vous utilisiez .NET 4, vous rechercheriez Tuple . .NET 3.5 n’a pas de type intégré, mais en fonction de vos besoins, vous pouvez créer un Dictionary>>

Essayez Dictionary> ou alternativement Dictionary où YourClass (qui pourrait être une structure, bien sûr) contient les deux données requirejses.