【问题标题】:Need help on creating int range在创建 int 范围方面需要帮助
【发布时间】:2012-03-18 08:57:27
【问题描述】:

我想在我输入名称的地方设置它,然后将指定的数字范围应用到它的末尾。

图片:What the form looks like

输入:

name(textBox1) - example: john_dong
Range(textBox2-textBox3) - example: 0-10

输出:

Name + Range (textBox4) - example:
john_dong0
john_dong1
john_dong2
john_dong3
john_dong4
john_dong5
john_dong6
john_dong7
john_dong8
john_dong9
john_dong10

肯定会使用 int 函数。 我已经有一个保存功能和一个 ftp 上传功能我只是不知道从哪里开始 int。

【问题讨论】:

  • 函数必须用 C# 编写,因为我正在使用/创建的 Forms 应用程序是用 C# 编写的。
  • 肯定需要更多细节。您如何以及何时需要这个生成的列表?在客户端?目前您的问题措辞含糊。
  • 我在按下按钮 1(“开始”)后需要它,我添加了一张图片来帮助解决一些问题。

标签: c# list ftp int


【解决方案1】:

Enumerable.Range 会吗?

var s = Enumerable.Range(0, 11).Select(i => "john_dong" + i).ToArray();

编辑:根据评论更新:

int min = int.Parse(textBox1.Text);
int max = int.Parse(textBox2.Text);
var s = Enumerable.Range(min, max - min + 1).Select(i => "john_dong" + i).ToArray();

编辑:根据评论再次更新:

string name = textBox1.Text;
int min = int.Parse(textBox2.Text);
int max = int.Parse(textBox3.Text);
textBox4.Text = string.Join(Environment.NewLine, 
    Enumerable.Range(min, max - min + 1).Select(i => name + i));

【讨论】:

  • 它应该可以让我看看,但需要能够使用 textBox1(最小值)和 textBox2(最大值)指定 int 范围。
  • 这里是一个完整的表格,只是一个例子:link 但是所有名字的文本框都是只读的。
  • 完美正是我想要的 :) 非常感谢您的帮助,感谢您的宝贵时间。
  • @John_Dong:不客气!不要忘记,如果用户输入无效数据,int.Parse 调用可能会引发异常。您可能希望通过使用 int.TryParse 或通过 try/catch 块来处理此问题。
【解决方案2】:

那么,有点像这样?

var baseName = "john_doe";
var rangedNames = new List<string>();
foreach( var i in Enumerable.Range(a, b) )
{
    rangedNames.Add( baseName + i );
}

【讨论】:

    【解决方案3】:
    try
    {
        var name = textBox1.Text;
        var lowerValue = Convert.ToInt32(textBox2.Text);
        var upperValue = Convert.ToInt32(textBox3.Text);
    
        if (upperValue < lowerValue) throw Exception(...);
    
        for (int i = lowerValue; i <= upperValue; i++)
             textBox4.Text += String.Format("{0}{1}\n", name, i);
    } catch { ... }
    

    【讨论】:

    • 那是一个控制台应用程序不是吗?因为它包含console.writeline。
    • 不,我只是把它放在那里,因为我不知道你想用这些值做什么......
    • 我希望将它们打印到 textBox4 中,这是一个多行文本框。
    • 每个名字单独一行。
    • @John_Dong:已修复。这将完全符合您的要求。它包含在 try-catch 中,因为您的文本框中可能会出现无效输入。
    猜你喜欢
    • 1970-01-01
    • 2011-08-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-08
    • 2020-02-16
    • 1970-01-01
    相关资源
    最近更新 更多