将字符串传递给int到子字符串

时间:2011-08-30 00:13:10

标签: c#

我目前获得的用户数字如下:

        if (checkBox1.Checked)
        {
            rchars = numericUpDown1.Value.ToString();
        }
        else
        {
            rchars = "3";
        }

string rchars;是一个全局变量。

所以,我试图从文件名中删除rchars。 例如,文件名中的前三个字符:

            int num = Int32.Parse(rchars);
            foreach (FileInfo name in fpaths.GetFiles("*.mp3")
            {
                string snub = name.Name.Substring(num);
                MessageBox.Show(snub);
                System.IO.File.Move(blah + name.Name, newblah + snub);
            }

我的问题是如何获得" num"在子字符串中工作?因为我不能把它变成一个价值。因为我想从numericUpDown传递它。添加make" num"一个值,所以我可以从文件名中删除该值。

感谢。

3 个答案:

答案 0 :(得分:2)

NumericUpDown的Value属性是Decimal - 这可能就是您遇到问题的原因。在if块中,我会考虑将NumericUpDown对象的Value属性转换为true部分中的整数,并在其else部分中使用整数值3。之后,我会避免再次解析并按原样将其提供给Substring。

答案 1 :(得分:1)

您说要从rchars 删除所有name,所以为什么要使用Substring?如果您要从string rchars中删除name,请将其保留为字符串并使用String.Replace

string snub = name.Name.Replace( rchars, String.Empty );

此外,Value的{​​{1}}属性为NumericUpDown,而不是decimal

答案 2 :(得分:0)

您是否希望将文件名中的值“3”替换为其他/删除它?像这样:

原始档案:

string fiename = "myfile3.mp3";

删除/替换所选号码(在本例中为3):

string num = "3";
filename.replace(num, "");

应该以文件名“myfile.mp3”

结束