我将字符串数组(以前从.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]);
}
答案 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
函数。