J'ai un Dictionary<string, bool>
où la clé - ID de contrôle et de valeur - il est l'état visible pour définir:Évitez recherche double contrôle dans LINQ requête
var dic = new Dictionary<string, bool>
{
{ "rowFoo", true},
{ "rowBar", false },
...
};
Certains contrôles peuvent être null
, c.-à-dic.ToDictionary(k => this.FindControl(k), v => v)
ne fonctionnera pas parce que la clé peut ne soyez pas nul.
Je peux faire ensuite:
dic
.Where(p => this.FindControl(p.Key) != null)
.ForEach(p => this.FindControl(p.Key).Visible = p.Value); // my own extension method
mais appellerai FindControl()
deux fois pour chaque touche. Comment éviter la double recherche et sélectionner uniquement les touches pour lesquelles un contrôle approprié existe?
Quelque chose comme:
var c= FindControl(p.Key);
if (c!= null)
return c;
mais en utilisant LINQ.