LINQ是对.NET以来最伟大的改进之一,它可以节省大量的时间和代码行.但是,对于我来说,流畅的语法似乎比查询表达式语法更自然.
var title = entries.Where(e => e.Approved)
.OrderBy(e => e.Rating).Select(e => e.Title)
.FirstOrDefault();
var query = (from e in entries
where e.Approved
orderby e.Rating
select e.Title).FirstOrDefault();
Run Code Online (Sandbox Code Playgroud)
这两者之间是否有任何区别,或者一方面有什么特别的好处呢?
如果我想在ASP.NET页面上找到选中的复选框,我可以使用以下LINQ查询.
var checkBoxes = this.Controls
.OfType<CheckBox>()
.TakeWhile<CheckBox>(cb => cb.Checked);
Run Code Online (Sandbox Code Playgroud)
如果复选框嵌套在当前控件集合中,那么工作正常,但我想知道如何通过向下钻取到顶级控件的控件集合来扩展搜索.
这里问的问题是:
并且收到了非LINQ答案,我已经有自己的类型和ID作为扩展方法的递归控件搜索版本,但我只是想知道在LINQ中这样做有多容易?
我的应用程序中有一个包含子控件的groupbox.(如附图中所示).我想枚举所有文本框,使用简单的foreach循环执行一些验证.
本文件大纲将对控制的住房提供一个公平的概念
foreach (Control control in grpBxTargetSensitivity.Controls)
{
if (control is FlowLayoutPanel && control.HasChildren)
{
foreach (Control ctrl in control.Controls)
{
if (ctrl is Panel && ctrl.HasChildren)
{
foreach (Control tbox in ctrl.Controls)
{
if (tbox is TextBox)
{
TextBox textbox = tbox as TextBox;
validData &= !string.IsNullOrWhiteSpace(textbox.Text);
}
}
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
我的问题是,是否有更好的方法(可能通过LINQ)获得所有控件,包括容纳在面板内的文本框,而不是上述方法.
我在winform中有几个文本框,其中一些在groupbox中.我试图遍历我的表单中的所有文本框:
For Each c As Control In Me.Controls
If c.GetType Is GetType(TextBox) Then
' Do something
End If
Next
Run Code Online (Sandbox Code Playgroud)
但它似乎跳过了groupbox中的那些并且仅循环到表单的其他文本框.所以我为groupbox文本框添加了另一个For Each循环:
For Each c As Control In GroupBox1.Controls
If c.GetType Is GetType(TextBox) Then
' Do something
End If
Next
Run Code Online (Sandbox Code Playgroud)
我想知道:有没有办法循环遍历表单中的所有文本框 - 包括组框内的文本框 - 只有一个For Each循环?或者更好/更优雅的方式来做到这一点?
提前致谢.
我的表单有数百个控件:菜单,面板,分割器,标签,文本框,您可以命名.
除了单个按钮之外,有没有办法禁用每个控件?
按钮之所以重要,是因为我不能使用禁用窗口或其他东西的方法,因为一个控件仍然需要可用.
如何在C#中检测表单控件中的更改?
因为我在一个表单上有很多控件,如果表单中的任何控件值发生变化,我需要禁用一个按钮.我正在寻找一些内置的函数/事件处理程序/属性,并且不想为此创建自定义函数.
问题是在c#.NET,Visual Studio,Windows Form Application下面临的
我有一堆复选框随机放在一个表格和一个面板中.因此,如果checkbox
在表单中选择任何其值,则应该将其值相加.
底线:不是使用大量的"If-else循环"来评估是否已经检查过.我想用"for循环"来简化它.
有没有任何Checkbox group name
类型的功能,我可以使用???
我想要这样的代码:
for(int i=0;i<checkboxes.length;i++)
{
string str;
if(chkbox.checked)
{
str+=chkbox.value;
}
}
Run Code Online (Sandbox Code Playgroud)
checkboxes
组名在哪里.
我正在尝试使用所有Button
正在使用的s 来填充数组Form1
.
Button[] ButtonArray = new Button[5];
ButtonArray[0] = button1;
ButtonArray[1] = button2;
ButtonArray[2] = button3;
ButtonArray[3] = button4;
ButtonArray[4] = button5;
Run Code Online (Sandbox Code Playgroud)
这段代码工作正常.但是,如果我有100个按钮,这是一个很长的过程.
我想列出另一个名称以"btnOverlay"开头的控件中的所有控件.我无法使用Controls.Find
,因为它需要完全匹配.我相信我可以使用LINQ,但我对此并不是很有经验.可能吗?我该怎么做?
我正在使用.NET 4.0.