【问题标题】:Parsing using C#使用 C# 解析
【发布时间】:2014-10-15 12:51:42
【问题描述】:

此应用程序完美运行

        var myValue = txtBox1.Text ?? "";
      var splittedValue = myValue.Split(',');
       if (splittedValue.Length != 3)
      {
        MessageBox.Show("Please enter a valid values !", "Message", 


         MessageBoxButtons.OK, MessageBoxIcon.Information);
        return;
    }
    txtBox2.Text = (splittedValue[0]);
    txtBox3.Text = (splittedValue[1]);
    txtBox4.Text = (splittedValue[2]);

最佳答案。非常感谢您的帮助!

【问题讨论】:

  • 和你之前的问题Parse strings using C#非常相似
  • 我以前问过这个问题,但没有人明白我的意思,所以我再次问了这个问题!
  • 为什么要解析一个文本框来将数据放入其他文本框中?为什么不让用户在特定的文本框中输入特定的数据?
  • @chrisjesus 然后编辑您之前的问题,而不是创建一个新问题。
  • 其他文本框将只显示用户输入的详细信息。因此用户只能输入所需的详细信息,然后单击解析按钮,将输入分配到三个文本框中。

标签: c# .net c#-4.0 c#-3.0


【解决方案1】:

如果您想计算字符串中逗号的数量,可以使用带有谓词的Enumerable.Count

if (txtBox1.Text.Count(ch => ch == ',') > 2)
{ 
}

【讨论】:

    【解决方案2】:

    我不太了解目的,但是为了回答您的问题,您可以绑定到文本框的适当事件(TextChanged 或 LostFocus)并执行与您所做的类似的操作:

            var myValue = txtBox1.Text ?? "";
            var splittedValue = myValue.Split(',');
            if (splittedValue.Length != 3)
            {
                MessageBox.Show("Please enter a valid values !", "Message", MessageBoxButtons.OK, MessageBoxIcon.Information);
                return;
            }
            txtBox2.Text = (splittedValue[0]);
            txtBox3.Text = (splittedValue[1]);
            txtBox4.Text = (splittedValue[2]);
    

    【讨论】:

    • TextBox.Text 的值可以为空吗?另外,在MessageBox关闭后,如果数组长度小于3,代码会继续抛出异常。
    • 在这种情况下,我可以打开另一个 If TextBox.Text ==null 吗?
    • 当我在文本框中没有输入时,它会抛出异常
    • @Ash Burlaczenko:确切地说,在 MessageBox.Show 之后,有一个 return; 会很好。 textbox.text 不应返回 null,而应返回空字符串。如您所见,确定我使用了 txtBox1.Text ?? “”。
    • 卢克非常感谢你的帮助,你是明星:)
    猜你喜欢
    • 2012-09-13
    • 2018-09-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-06-16
    • 2013-11-28
    • 2011-04-25
    • 1970-01-01
    相关资源
    最近更新 更多