一段代码求解释

Thr21ough 2011-05-11 08:28:05

/// <summary>
/// 弹出对话框
/// </summary>
/// <param name="parentctr"></param>
/// <param name="ControlPowerList"></param>
public void FindControlInControls(Control parentctr, DataTable ControlPowerList)
{
foreach (Control ctr in parentctr.Controls)
{
if (CURRENTPERSON != "programmer" && System.Configuration.ConfigurationSettings.AppSettings["IsPower"] == "true")
{
var querylist = ControlPowerList.AsEnumerable().Where(info => info["CONTROLER_NAME"].ToString() == ctr.ID).Where(info => info["POWER_NAME"].ToString() == "控件不可见");
if (querylist.Count() > 0)
{
ctr.Visible = false;
}
}
switch (ctr.GetType().ToString())
{
//为Button添加鼠标焦点变化事件
case "System.Web.UI.WebControls.Button":
(ctr as Button).Attributes.Add("onmouseover", "this.className='Boutton_LightBlue1'");
(ctr as Button).Attributes.Add("onmouseout", "this.className='Boutton_LightBlue'");
break;

}
FindControlInControls(ctr, ControlPowerList);
}
}


之前没有接触过LINQ这段代码没怎么看懂,重点是var querylist = ControlPowerList.AsEnumerable().Where(info => info["CONTROLER_NAME"].ToString() == ctr.ID).Where(info => info["POWER_NAME"].ToString() == "控件不可见");没看懂,info,=>,ControlPowerList.AsEnumerable().Where这些怎么理解?
...全文
78 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
十八道胡同 2011-05-11
  • 打赏
  • 举报
回复
等学习了lambda之后 这些就都明白了
Tragedy 2011-05-11
  • 打赏
  • 举报
回复
var querylist = ControlPowerList.AsEnumerable().Where(info => info["CONTROLER_NAME"].ToString() == ctr.ID).Where(info => info["POWER_NAME"].ToString() 

info:为一个变量(自定义变量)
=>:lambda标识
ControlPowerList.AsEnumerable().Where
ControlPowerList:你传入的DataTable,AsEnumerable():把DataTable转换为AsEnumerable().
.Where是查询的多个where里面的为条件.
建议可以看看lambda表达式.看了在来看你代码一目了然。
机器人 2011-05-11
  • 打赏
  • 举报
回复
1. => 查查MSDN的Lambda
2. info就是个变量,同上查查Lambda
3. AsEnumerable() 将DataTable转成可以进行Linq查询的对象

上面的语句也可以写成:类似sql,能明白吧。info就是一条DataRow

var queryList = from info in ControlPowerList.AsEnumerable()
where info["CONTROLER_NAME"].ToString() == ctr.ID
&& info["POWER_NAME"].ToString() == "控件不可见"
select info;

110,567

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧