Je suis nouveau en C# et je me retrouve parfois dans des situations où je dois retourner des types de retour complexes pour certaines fonctions. Comme la fonction peut prendre dans un objet et retourner une vue différente de cet objet: certains champs ajoutés, certains supprimés, etc. Et d'autres fois, je peux prendre une liste d'objets et je veux retourner une liste de certains objets modifiés et éventuellement quelques calculs agrégés sur tous ensemble. Je pourrais accomplir ce genre de choses en retournant des types natifs C# (comme object []), mais il devient moche d'avoir object [] de object [] et ensuite en code de "connaitre" cet objet [ 0] [1] correspond à quelque chose.C# Types de retour complexes
Je soupçonne que cela est logique de créer une classe vraiment nouveau appelé comme un FnFooReturn, mais où est-il le plus logique d'inclure la définition de ces classes afin que partout qui appelle la fonction peut l'utiliser?
Edit: Un exemple spécifique: J'ai une Foo fonction qui prend dans une liste d'objets tels que:
(int id, int num, string name)
de sorte que certaines données exemple pourrait être:
(1, 100, "foo")
(1, 203, "foo")
(2, 400, "bar")
(3, 10, "cat")
et je veux pour retourner une liste d'objets tels que:
(int id, string name, int[] nums)
à ressembler à:
[(1, "foo", [100, 103]), (2, "bar", [400]), (3, "cat", [10])]
il est fondamentalement juste une vue différente de la liste originale des objets sauf qu'il combine ensemble tous les objets avec le même identifiant pour le rendre plus facile à boucle sur dans un autre code plus tard.
Pourriez-vous donner quelques exemples de code donc ce que nous pouvons faire quelques conseils de conception plus précis? – user7116
Il y a trop de façons de tout faire.Donnez un exemple de ce que vous essayez et quelqu'un peut être en mesure de donner une réponse que vous trouvez applicable ailleurs aussi. – Patrick
@sixlettervariables J'ai ajouté un exemple –