Je veux stocker une liste d'objets, disons de type Car, mais avec une propriété 'tag' supplémentaire, par exemple un booléen True/False qui n'appartient pas à la classe Car. Quelle est la meilleure façon d'y parvenir? Je dois passer le résultat entre les méthodes.Liste des objets plus une étiquette
Répondre
Vous pouvez utiliser un type de ligne, par exemple Pair<T,U>
.
Heres un exemple:
namespace TestProject.Utils
{
public class Pair<T, U>
{
public Pair(T first, U second)
{
this.First = first;
this.Second = second;
}
public T First { get; set; }
public U Second { get; set; }
}
}
Pour C# 4, voici une bonne lecture à propos tuple: CLR Inside Out - Building Tuple
EDIT: Utilisation
Car mustang;
List<Pair<Car, bool>> list = new List<Pair<Car, bool>>(); // <Car, isAwesome> pairs..
list.Add(new Pair(mustang, true));
C'est une bonne idée, mais ... si je récupère la liste des voitures puis que je veux ajouter la balise par la suite, je vais devoir convertir des objets d'un type de liste à un autre. Et je dois déjà recommencer plus tard. Est-ce une mauvaise pratique de convertir des listes ou un scénario commun? –
Dictionary<Car, bool> carFlags = new Dictionary<Car, bool>();
Vous pouvez passer la voiture dans le dictionnaire et récupérer le drapeau bool.
Utilisation de l'héritage, vous pouvez créer une classe CarWithTag qui étend la classe de voiture sans polluer la classe de voitures avec des propriétés non nécessaires:
public class Car
{
public string CarInfoEtcetera { get; set; }
}
public class CarWithTag : Car
{
public string Tag { get; set; }
}
Ensuite, vous pouvez créer une méthode qui accepte un objet CarWithTag lorsque vous devez passer tag info aussi.
private string GetCarTagInfo(CarWithTag car)
{
return car.Tag;
}
Vous pouvez maintenant créer un nouvel objet CarWithTag et le transmettre dans la méthode, ainsi que toutes les infos de voiture.
CarWithTag carWithTag = new CarWithTag()
{
Tag = "123abc",
CarInfoEtcetera = "etc"
};
string tag = GetCarTagInfo(carWithTag);
- 1. Persist Liste des objets
- 2. Comment obtenir une liste des objets Prolog
- 3. liste Filtrage des objets d'une autre liste
- 4. Ajouter des objets plus que pour ArrayList
- 5. Liste des objets boost :: Unique_Ptr
- 6. Liste des objets et des événements partagés
- 7. LINQ pour regrouper une liste d'objets dans une nouvelle liste groupée de la liste des objets
- 8. Liste des objets à la liste des interfaces
- 9. C#: Vue immuable des objets d'une liste?
- 10. Obtenir la liste Activerecord des objets associés à partir de la liste des objets
- 11. Comment faire une liste (contenant des objets) persistante
- 12. Manière plus facile de centrer une étiquette dans Xul
- 13. Supprimer des objets spécifiques d'une liste
- 14. Quelle est la meilleure façon d'incorporer des objets utilitaires simples dans des objets spécialisés plus complexes?
- 15. Structure JSON pour la liste des objets
- 16. Linq à des objets Liste dans la liste
- 17. liste Convertir des objets à une liste d'entiers et une table de consultation
- 18. Liste des objets à Excel Spreadsheet?
- 19. Liste des objets COM disponibles avec Powershell
- 20. tuple vs liste des objets en python
- 21. Écrire des données dans une étiquette spécifique
- 22. modèle django objets à une liste python
- 23. liste Deserialize des dictionnaires imbriqués à une forme plus simple
- 24. Obtenez une liste des entreprises les plus proches
- 25. ClearCase: Trouver des fichiers ayant exactement une étiquette spécifique et pas plus
- 26. Problème de mise en page Flex - Label: un texte plus court signifie une étiquette plus large
- 27. En utilisant LINQ, sélectionnez la liste des objets dans une autre liste d'objets
- 28. Rails: Liste des utilisateurs avec plus d'informations
- 29. Comment puis-je afficher une étiquette selon que la liste déroulante comporte des options?
- 30. Comment charger des modules flex en tant que liste d'itemrenderers avec une étiquette de moduleloader?
Est-ce que chaque voiture a besoin d'une étiquette? Ou est-ce que la collection de voitures a besoin d'un tag? –
Comment voulez-vous que le tag se comporte? Voulez-vous obtenir des voitures de la liste par étiquette? Souhaitez-vous obtenir une paire de voiture/étiquette de la liste et traiter chaque paire individuellement? –
Chaque voiture a besoin d'une balise –