Rechercher une liste d'objets en fonction de la variable d'objet
J'ai une liste d'objets. Ces objets ont trois variables, ID, Nom, & valeur. Il peut y avoir beaucoup d'objets dans cette liste, et j'ai besoin d'en trouver un en fonction de l'ID ou le Nom, et modifier la valeur.
Exemple
class objec
{
public string Name;
public int UID;
public string value;
}
List<objec> TextPool = new List<objec>();
Comment faire pour en trouver une entrée dans TextPool qui avait le Nom de "test" et changer sa valeur "Valeur".
Le programme réel a beaucoup plus d'options de recherche, et les valeurs qui a besoin de changer, donc je ne pouvais pas tout simplement utiliser un Dictionnaire (même si le Nom et l'UID ou identifiants uniques).
Toute aide serait super
source d'informationauteur Ben
Vous devez vous connecter pour publier un commentaire.
Vous pouvez utiliser LINQ pour le trouver, puis changer l'élément directement:
Si vous vouliez changer tous les éléments qui correspondent, vous pourriez, éventuellement, à même le faire:
Cependant, personnellement, je préfère séparer, car j'ai l'impression que la deuxième option est moins facile à gérer (effectuant des opérations qui provoquent des effets secondaires directement sur le résultat de la requête "odeurs" pour moi)...
Sonne comme un travail pour LINQ!
C'est en supposant que votre recherche est défini dans le code. Si votre code est piloté par l'INTERFACE utilisateur, vous pouvez tout simplement faire un linéaire d'itération. Rechercher tous les attributs possibles, sans indexation, il n'ira pas plus vite.
[ Edit: a Été battu à coup de poing, mais en laissant cette place comme un exemple de syntaxe différente, plus un lien ]
Si vous envisagez d'effectuer de nombreuses recherches, vous pourriez mettre en cache les résultats de multiples Dictionnaire<> des instances (ou de Recherche<> exemple si les touches ne sont pas uniques).