【问题标题】:richTextBox sum of all lines in c#c#中所有行的richTextBox总和
【发布时间】:2019-11-10 18:01:27
【问题描述】:

我正在学习编码,开始时我正在创建小型项目。我想获得richTextBox 中所有行的总和。 RichTextBox 中的所有行都是数字。

例如: - 1 - 2 - 3 - 4 - 5 - 6 - 7 - 8 - 9 - 10

结果必须是:1+2+3+4+5+6+7+8+9+10 = 55。 我想在消息框中显示结果:“总和是 55”。

【问题讨论】:

  • “有什么办法……?” - 答案是肯定的。但是,如果您需要针对特定​​问题的帮助,则需要展示您已尝试过的内容。你的代码在哪里?

标签: c# visual-studio richtextbox


【解决方案1】:

试试这个:

MessageBox.Show(string.Format("Sum of your numbers is {0}",
    richTextBox1.Text.Split('\n').Select(number => Convert.ToInt32(number)).Sum()));

在换行符上拆分文本,将字符串数组中的所有内容转换为数字,获取总和并将其显示在MessageBox中。

逐步解决方案:

string[] stringArray = richTextBox1.Text.Split('\n');

int sum = 0;
foreach (string element in stringArray)
{
    sum += Convert.ToInt32(element);
}

MessageBox.Show("Sum of your numbers is " + sum);

【讨论】:

  • @Michielvk 嗯,这意味着您在richTextBox 中输入的文本的数字格式不正确。这是在您在问题中描述的相同示例上进行测试的,并且按预期工作。
【解决方案2】:

为此,需要将控件RichTextBoxcontents 划分为行,对 int 类型的每一行进行转换,然后对所有数字求和。下面是Sum方法的实现,负责添加并返回结果:

    private int Sum()
    {
        //myrichtextbox is your rich control
        string myText = myrichtextbox.Text;
        var separators = new string[] { "\n" };
        var myNumbers = myText.Split(separators, StringSplitOptions.RemoveEmptyEntries);

        int sum = 0;

        foreach (var num in myNumbers)
        {
            int convertedNumber;
            if (Int32.TryParse(num, out convertedNumber))
                sum += convertedNumber;
        }

        return sum;
    }

结束在MessageBox中显示结果使用以下语句:

MessageBox.Show(String.Format("The sum result is: {0}.",Sum()));

详细信息:我假设您使用的是 Windows 窗体应用程序!

【讨论】:

  • 这个答案对你有帮助吗?
  • 等一下我会在windows窗体中实现!
  • 本案例现已在windows窗体中实现。
猜你喜欢
  • 2013-03-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-01-20
  • 1970-01-01
  • 2023-01-13
  • 2011-09-02
相关资源
最近更新 更多