我有一个System.Collections.Generic.Dictionary<System.Web.UI.Control, object>,其中所有键都可以是System.Web.UI.WebControls.HyperLink类型或System.Web.UI.WebControls.Label类型。

我想更改每个控件的Text属性。由于HyperLink无法实现(为什么?!)ITextControl,我需要显式转换Label或HyperLink:

Dictionary<Control,object> dic = ..

dic
  .Where(p => p.Key is HyperLink)
  .ForEach(c => ((HyperLink)c).Text = "something")

dic
  .Where(p => p.Key is Label)
  .ForEach(c => ((Label)c).Text = "something")


有办法解决这种方法吗?

最佳答案

您可以创建一个派生自HyperLink的类,并让您的类继承自ITextControl。应该清楚从那里去哪里...

关于c# - 字典中的Where()和Replace(),其中(p => p.Key为T),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2859517/

10-08 23:19