Dictionary<string, bool>
whereキー(コントロールのIDと値)があります。設定するステータスは表示されています。
var dic = new Dictionary<string, bool>
{
{ "rowFoo", true},
{ "rowBar", false },
...
};
一部のコントロールは可能ですnull
。つまりdic.ToDictionary(k => this.FindControl(k), v => v)
、キーをnullにすることはできないため、機能しません。
次にできること:
dic
.Where(p => this.FindControl(p.Key) != null)
.ForEach(p => this.FindControl(p.Key).Visible = p.Value); // my own extension method
ただし、これFindControl()
により、キーごとに2回呼び出されます。
二重検索を回避し、適切な制御が存在するキーのみを選択するにはどうすればよいですか?
何かのようなもの:
var c= FindControl(p.Key);
if (c!= null)
return c;
ただし、LINQを使用します。