字符串数组到int数组转换

时间:2018-05-25 17:42:40

标签: c#

我将字符串数组(以前从.txt文件加载)转换为整数1时遇到问题。文件有100个随机数,它们加载没有任何问题,我只需要将它们转换为整数,使它们可以排序3种类型的排序。我已经尝试了许多这里所说的东西,但它们似乎都没有用。我一直都会收到错误消息,表示无法转换。 这是我从文件代码中加载的:

string[] path = File.ReadLines("C:\\Users\\M\\numb.txt").ToArray();
int[] numb= new int[path.Length];

for (int i = 0; i < path.Length; i++)
{
    Console.WriteLine(path[i]);
}

在选择了一些选项之后,我选择使用开关来选择一个:

switch (a)
{
    case 1:
        Console.WriteLine("1. Bubble.");
        //int[] tab = numb; 
        babel(path);

        for (int z = 0; z < path.Length; z++)
        {
            Console.Write(path[z] + ", ");
        }
        break;

我的程序中也有泡泡分类方法,不要认为有必要在这里发布。

如果有人能在这里帮助我,我真的很感激。

@Amy - 我试过这个:

numb[i] = path[i].Convert.toInt32(); - it doesn't work.

我想要实现的是将此数组中的每个数字更改为int,我认为它应该包含在这里:

{
    Console.WriteLine(path[i]);
}

3 个答案:

答案 0 :(得分:0)

此转换有效。

#string[] path = File.ReadLines("C:\\Users\\M\\numb.txt").ToArray();    
String[] path = {"1","2","3"};
int[] numb = Array.ConvertAll(path,int.Parse);

for (int i = 0; i < path.Length; i++)
{
    Console.WriteLine(path[i]);
}

for (int i = 0; i < numb.Length; i++)
{
    Console.WriteLine(numb[i]);
}

答案 1 :(得分:0)

最好使用TryParse而不是parse。使用List比使用数组更容易。

using System;
using System.Collections.Generic;

namespace StringToInt
{
    class Program
    {
        static void Main(string[] args)
        {
            String[] path = { "1", "2", "3", "a", "b7" };
            List<int> numb = new List<int>();


            foreach (string p in path)
            {
                if (int.TryParse(p, out int result))
                {
                    numb.Add(result);
                }
            }

            for (int i = 0; i < path.Length; i++)
            {
                Console.WriteLine(path[i]);
            }

            for (int i = 0; i < numb.Count; i++)
            {
                Console.WriteLine(numb[i]);
            }
        }
    }
}

答案 2 :(得分:-2)

我无法想象这不起作用:

string[] path = File.ReadAllLines("C:\\Users\\M\\numb.txt");
int[] numb = new int[path.Length];

for (int i = 0; i < path.Length; i++)
{
    numb[i] = int.Parse(path[i]);
}

我认为您的问题是您正在使用File.ReadLines,它将每行读入一个字符串。字符串没有ToArray函数。