我有一个字符串形式的整数数组。
string [] TriangleSideLengths
在这个数组中,将有3个int值表示三角形的边长。有没有办法从我的数组TriangleSideLengths中提取单个所有3个值到三个int对象,如int intSideLengthOne,intSideLengthTwo和intSideLengthThree。
我希望能够测试这三个值是否真的形成一个有效的三角形?
例如,输入长度10,10,100000不会使其成为有效的等腰三角形。
我希望能够使用存储在我的数组TriangleSideLengths中的三个值进行此检查。
a + b > c
a + c > b
b + c > a
非常感谢任何帮助。 非常感谢!! :)
答案 0 :(得分:6)
您可以使用LINQ来解析字符串中的数字,如下所示:
var threeSides = TriangleSideLengths.Select(int.Parse).ToArray();
要进行检查,按升序对数字进行排序,然后检查前两个的总和是否严格大于第三个:
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;
}