将string []转换为int

时间:2013-08-21 03:05:37

标签: c# .net arrays string int

我有一个字符串形式的整数数组。

string [] TriangleSideLengths

在这个数组中,将有3个int值表示三角形的边长。有没有办法从我的数组TriangleSideLengths中提取单个所有3个值到三个int对象,如int intSideLengthOne,intSideLengthTwo和intSideLengthThree。

我希望能够测试这三个值是否真的形成一个有效的三角形?

例如,输入长度10,10,100000不会使其成为有效的等腰三角形。

我希望能够使用存储在我的数组TriangleSideLengths中的三个值进行此检查。

a + b > c
a + c > b
b + c > a

非常感谢任何帮助。 非常感谢!! :)

5 个答案:

答案 0 :(得分:6)

您可以使用LINQ来解析字符串中的数字,如下所示:

var threeSides = TriangleSideLengths.Select(int.Parse).ToArray();

这是demo on ideone

要进行检查,按升序对数字进行排序,然后检查前两个的总和是否严格大于第三个:

Array.Sort(threeSides);
if (threeSides[0]+threeSides[1] > threeSides[2]) {
    ...
}

请注意,这不是数字定义三角形的充分条件:您还必须检查数字是否严格为正。

答案 1 :(得分:0)

试试这个

string [] TriangleSideLengths = new string[3];
int[] lengths = new int[3];
for(int i = 0; i<=2;i++)
{
 lengths[i]=Convert.ToInt32(TriangleSideLengths[i]);
}
if(lengths[0]+lengths[1]>lengths[2])
   //go crazy

答案 2 :(得分:0)

string[] TriangleSideLengths = { "10", "20", "300"};

int[] sides = new int[TriangleSideLengths.Length];

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

答案 3 :(得分:0)

int[] sides = new int[TriangleSideLengths.Length];
int counter=0;
foreach(var str in TriangleSideLengths)
{
   int.TryParse(str, out sides[counter++]);
}
if(sides[0] + sides[1] > sides[2]){...}

答案 4 :(得分:-1)

public int toInt(string text)
{
    int tonumber = int.Parse(text);
    return tonumber;
}