J'essaie de créer une méthode d'extension que je peux transmettre un IList de statuts et de vérifier la météo qu'ils existent, je pensais que la meilleure façon de le faire était un ILIST - mais peut-être que je me trompe? Est-ce la meilleure façon de passer plusieurs éléments à une méthode - une liste? C'est un LISTE générique donc pas de conversion, etc.LINQ: Vérifier si un champ (db) contient des éléments dans un ILIST?
Fondamentalement, j'ai ceci comme signature.
public static IQueryable<Building> WithStatus(this IQueryable<Building> qry,
IList<BuildingStatuses> buildingStatus)
{
//PSUEDO CODE
//return from v in qry
// where v.Status is IN MY LIST called buildingStatus
// select v;
}
et de l'appeler que j'utilise (l'exemple ci-dessous est dans mon TDD), cela fonctionne très bien les valeurs arrivent dans ma méthode ci-dessus.
target.GetBuildings().WithStatus(new List<BuildingFilters.BuildingStatuses>()
{ BuildingFilters.BuildingStatuses.Available,
BuildingFilters.BuildingStatuses.Decommissioned });
donc en gros j'ai ma liste (IList) arrive dans la méthode d'extension avec 2 valeurs qui est grande mais il faut dire LINQ je dois dire
return from v in qry
where v.Status is IN MY LIST called buildingStatus
select v;
apprécient vraiment d'aide,
en ce qui concerne ma méthode d'extension, il fonctionne comme je l'ai fait, mais similaire 1 seul type qui passe BuildingStatus donc seulement 1 ...
Merci pour les deux commentaires, Oui, ce qui est grand, oublié de mentionner que je dois appeler une méthode d'extension sur chaque valeur de la liste des éléments appelés GetStringValue, car la liste est une collection de BuildingStatuses énumérations nommé, et GetStringValue est une méthode d'extension qui renvoie une chaîne que j'ai ajoutée sur chaque Enum via un attribut. Je suppose qu'une sorte de lambda pourrait faire ça? Je ne suis pas sûr, des idées? –
Si je n'appelle pas la méthode d'extension (qui fonctionne) alors évidemment l'énumération retournera un entier et c'est une représentation de chaîne dont j'ai besoin. J'espère que je l'explique assez. –
J'ai accepté une réponse car ma question a erré un peu, et la réponse acceptée me donne la solution que je cherchais –