C# LINQ援助

C# LINQ援助,c#,.net,winforms,linq,C#,.net,Winforms,Linq,我的winform中有10个文本框 为了执行一些验证,我使用OnValidating事件处理程序进行一些处理。为了方便起见,我在IEnumerable集合中添加了所有这些textbox控件 IEnumerable<TextBox> txtBoxList; i、 例如,如果textbox1和textbox2具有相同的内容 ex: textbox1 : "John" and textbox2 : "John" 然后它只返回一个出现的“John” 我需要您的帮助来获取字符串集合中文本

我的winform中有10个文本框

为了执行一些验证,我使用OnValidating事件处理程序进行一些处理。为了方便起见,我在IEnumerable集合中添加了所有这些textbox控件

IEnumerable<TextBox> txtBoxList;
i、 例如,如果textbox1和textbox2具有相同的内容

ex: textbox1 : "John" and textbox2 : "John" 
然后它只返回一个出现的“John”

我需要您的帮助来获取字符串集合中文本框(包括重复项)的所有值

等待答复 VATSAG

你就不能这么做吗

contentList = txtBoxList.Where(t => t.Text != null)
                        .Select(t => t.Text)
                        .ToList();
你就不能这么做吗

contentList = txtBoxList.Where(t => t.Text != null)
                        .Select(t => t.Text)
                        .ToList();

您正在按文本进行分组,例如。G“john”、“john”、“doe”、“bla”将变成“john”、“doe”、“bla”,因为您对相同的字符串进行分组

您可以简单地执行以下操作:

contentList = txtBoxList.Where(g => !string.IsNullOrEmpty(g))
                        .Select(t => t.Text)
                        .ToList();

您正在按文本进行分组,例如。G“john”、“john”、“doe”、“bla”将变成“john”、“doe”、“bla”,因为您对相同的字符串进行分组

您可以简单地执行以下操作:

contentList = txtBoxList.Where(g => !string.IsNullOrEmpty(g))
                        .Select(t => t.Text)
                        .ToList();

如果我理解正确,那么你想要

this.Controls.OfType<TextBox>().Where(tb => !string.IsNullOrEmpty(tb.Text))
                               .Select(tb => tb.Text);
this.Controls.OfType().Where(tb=>!string.IsNullOrEmpty(tb.Text))
.Select(tb=>tb.Text);
查找窗体上所有文本框控件,选择那些不为空的控件,然后获取文本

不过,您可能要做的是,首先将文本框添加到面板,然后在该面板上查找文本框

panelName.Controls.OfType<TextBox>()....
panelName.Controls.OfType()。。。。

如果我理解正确,那么您需要

this.Controls.OfType<TextBox>().Where(tb => !string.IsNullOrEmpty(tb.Text))
                               .Select(tb => tb.Text);
this.Controls.OfType().Where(tb=>!string.IsNullOrEmpty(tb.Text))
.Select(tb=>tb.Text);
查找窗体上所有文本框控件,选择那些不为空的控件,然后获取文本

不过,您可能要做的是,首先将文本框添加到面板,然后在该面板上查找文本框

panelName.Controls.OfType<TextBox>()....
panelName.Controls.OfType()。。。。
这将列出所有的副本


这将列出所有重复项。

刚刚删除了分组方法调用。
txtBoxList.Select(bx=>bx.Text)
-类似于这些内容的内容?您尝试了什么?我昨天回答了你的一个类似问题。刚刚删除了分组方法调用。
txtBoxList.Select(bx=>bx.Text)
-类似的东西?您尝试了什么?我昨天回答了你的一个类似问题。上面的查询将在结果中包含我不想要的空字符串上面的查询将在结果中包含我不想要的空字符串want@JenishRabadiya谢谢你的更正。也;我更改了订单-这将更有效率。@JenishRabadiya感谢您的更正。也;我更改了订单-这样会更有效率。