You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

C#中字符串数组转整数数组遇阻,求有效转换方案

问题分析

你现在遇到的核心问题是字符串转整数的语法错误,以及后续排序时传参类型不匹配的问题。先看你尝试的转换代码:

numb[i] = path[i].Convert.toInt32();

这是语法错误,因为Convert是C#的静态类,不是string类型的成员方法,不能通过字符串实例去调用它。

解决方案

1. 正确完成字符串到整数的转换

你可以在读取后的循环里完成转换,替换掉原来的Console.WriteLine(path[i]);,推荐两种方法:

方法一:直接转换(适合确定文件里全是有效整数的情况)

string[] path = File.ReadLines("C:\\Users\\M\\numb.txt").ToArray();
int[] numb = new int[path.Length];
for (int i = 0; i < path.Length; i++)
{
    // 正确的转换写法:调用静态类Convert的方法,或者用int.Parse
    numb[i] = Convert.ToInt32(path[i]);
    // 或者 numb[i] = int.Parse(path[i]);
    Console.WriteLine(numb[i]); // 可以输出转换后的整数验证
}

方法二:安全转换(防止文件里有非数字内容抛出异常)

如果不确定文件里的内容是否全是合法整数,用int.TryParse更稳妥,它会返回转换是否成功的布尔值:

string[] path = File.ReadLines("C:\\Users\\M\\numb.txt").ToArray();
List<int> numbList = new List<int>();
for (int i = 0; i < path.Length; i++)
{
    if (int.TryParse(path[i], out int num))
    {
        numbList.Add(num);
        Console.WriteLine(num);
    }
    else
    {
        Console.WriteLine($"第{i+1}行内容「{path[i]}」不是有效整数,已跳过");
    }
}
int[] numb = numbList.ToArray();

2. 修正排序方法的传参问题

你的冒泡排序方法应该是接收int[]类型的参数,所以在switch语句里要传入转换后的numb数组,而不是原来的path字符串数组:

switch (a)
{
    case 1:
        Console.WriteLine("1. Bubble.");
        babel(numb); // 传入int数组numb,而不是path
        for (int z = 0; z < numb.Length; z++)
        {
            Console.Write(numb[z] + ", "); // 输出排序后的整数数组
        }
        break;
    // 其他case同理
}

这样就能完成字符串数组到整数数组的转换,并且正常调用排序方法啦!

内容的提问来源于stack exchange,提问作者pisul

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.29 06:50:57