【问题标题】:LINQ assistanceLINQ 协助
【发布时间】:2015-04-07 06:35:27
【问题描述】:

我的 winform 中有 10 个文本框。

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

IEnumerable<TextBox> txtBoxList;

在 OnValidating 事件处理程序中,我需要 LINQ 查询帮助以字符串集合的形式获取文本框的所有 当前值

IList&lt;string&gt; contentList;

现在,我的要求是将文本框(非空)的值作为字符串集合。我想使用 LINQ。

我使用的这个查询只返回不同的值

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

即,如果 textbox1 和 textbox2 具有相同的内容,

ex: textbox1 : "John" and textbox2 : "John" 

然后它只返回一次出现的“John”。

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

等待回复 增值税

【问题讨论】:

  • 刚刚通过方法调用删除了组。
  • txtBoxList.Select(bx =&gt; bx.Text) - 类似的东西?
  • 你试过什么?我昨天回答了你的一个类似问题。 stackoverflow.com/questions/29466402/…

标签: c# .net winforms linq


【解决方案1】:

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

this.Controls.OfType<TextBox>().Where(tb => !string.IsNullOrEmpty(tb.Text))
                               .Select(tb => tb.Text);

找到表单上所有的文本框控件,选择那些非空的,然后获取文本

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

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

【讨论】:

    【解决方案2】:

    你就不能这样做

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

    【讨论】:

    • 上述查询将在结果中包含我不想要的空字符串
    【解决方案3】:

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

    你可以这样做:

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

    【讨论】:

    • @JenishRabadiya 感谢您的更正。还;我更改了顺序 - 这样会更有效率。
    【解决方案4】:
    contentList = txtBoxList.GroupBy(t => t)
                            .Where(g => !string.IsNullOrEmpty(g.Key))
                            .SelectMany(grp => grp.Skip(1))
                            .ToList();
    

    这将列出所有重复项。

    【讨论】:

      猜你喜欢
      • 2021-09-24
      • 2021-02-15
      • 1970-01-01
      • 2013-08-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多