我有一个Dictionary<string, bool>
where 键 - 控件的 ID 和值 - 要设置的可见状态:
var dic = new Dictionary<string, bool>
{
{ "rowFoo", true},
{ "rowBar", false },
...
};
一些控件可以是null
,即dic.ToDictionary(k => this.FindControl(k), v => v)
不能工作,因为键不能为空。
接下来我可以做:
dic
.Where(p => this.FindControl(p.Key) != null)
.ForEach(p => this.FindControl(p.Key).Visible = p.Value); // my own extension method
但这将为FindControl()
每个键调用两次。
如何避免重复搜索并仅选择存在适当控件的那些键?
就像是:
var c= FindControl(p.Key);
if (c!= null)
return c;
但使用 LINQ。