我想在/后读取整数。这就是为什么我试图使用这段代码:
while ((line = file.ReadLine()) != null)
{
string[] ip = line.Split('/');
Console.WriteLine(ip[1]);
}
此代码将此整数作为字符串返回给我。我想用这个数字进行一些数学计算,例如,乘法。我试过这段代码,但它不起作用
int[] intArray = Array.ConvertAll(ip, int.Parse);
答案 0 :(得分:2)
如果它真的与IP地址相关,这可能会有所帮助
class IPV4Adress
{
public int BlockA {get; set;}
public int BlockB {get; set;}
public int BlockC {get; set;}
public int BlockD {get; set;}
public IPV4Adress(string input)
{
If(String.IsNullOrEmpty(input))
throw new ArgumentException(input);
int[] parts = input.Split(new char{',', '.'}).Select(Int32.Pase).ToArray();
BlockA = parts[0];
BlockB = parts[1];
BlockC = parts[2];
BlockD = parts[3];
}
public override ToString()
{
return String.Format("{0}.{1}.{2}.{3}",BlockA, BlockB, BlockC, BlockD);
}
}
然后从File:
中读取它IPV4Adress[] adresses = File.ReadLines(fileName).SelectMany(line=>line.Split('/')).Select(part => new IPV4Adress(part)).ToArray();
答案 1 :(得分:1)
您正在尝试将<{> ip
数组的每个项转换为整数。至少它的第二项 - "24 25 26 27"
不能转换为单个整数值。你应该把这个ip
数组项,用空格分割,然后将每个部分解析为整数:
int[] intArray = ip[1].Split().Select(Int32.Parse).ToArray();
或者
int[] intArray = Array.ConvertAll(ip[1].Split(), Int32.Parse);
答案 2 :(得分:0)
给定数组,您可以使用Array.ConvertAll
method:
int[] myInts = Array.ConvertAll(arr, s => int.Parse(s));
<强>(或)强>
int[] myInts = arr.Select(s => int.Parse(s)).ToArray();
<强>(OR)强>
var converted = arr.Select(int.Parse)
LINQ解决方案类似,除非您需要额外的ToArray
调用来获取数组:
int[] myInts = arr.Select(int.Parse).ToArray();