3 回答
TA贡献1946条经验 获得超3个赞
如果您创建一个循环遍历所有条目的外循环,然后创建一个循环遍历您在外循环中查看的条目之后的条目的内循环,您可以执行以下操作
string[] array = {"abcw", "baz", "foo", "bar", "xtfn", "abcdef"};
for (var i = 0; i < array.Length; i++)
{
for (var j = i + 1; j < array.Length; j++)
{
if (array[i].Length * array[j].Length == 16)
{
Console.WriteLine($"{array[i]} {array[j]}");
}
}
}
然后你得到的结果是 abcw xtfn
TA贡献1942条经验 获得超3个赞
缩短代码的可能方法之一。
您可以迭代您的数组并将第一项与您在问题代码块中提到的其余项进行比较。无需访问单个数组元素。
将第一个元素与其余元素进行比较
static void Main(string[] args)
{
int result;
string[] array = { "abcw", "baz", "foo", "bar", "xtfn", "abcdef" };
for (int i = 0; i < array.Length - 2; i++)
{
result = array[0].Length * array[i + 1].Length;
if (result == 16)
{
Console.WriteLine(array[0] + " * " + array[i+1] + " = " + result);
break;
}
}
Console.ReadLine();
}
比较中间的所有元素
for (var i = 0; i < array.Length; i++)
for (var j = i + 1; j < array.Length; j++)
if (array[i].Length * array[j].Length == 16)
Console.WriteLine(array[i] + " * " + array[j] + " = " + array[i].Length * array[j].Length);
TA贡献1827条经验 获得超9个赞
string[] array = { "abcw", "baz", "foo", "bar", "xtfn", "abcdef" };
int result = 16;
for (var i = 0; i < array.Length; i++) {
int x = array[i].Length;
if (result % x != 0) {
continue;
}
for (var j = i + 1; j < array.Length; j++) {
if (x * array[j].Length == result) {
Console.WriteLine(array[i] + "*" + array[j] + "= " + result);
}
}
}
- 3 回答
- 0 关注
- 214 浏览
添加回答
举报