【发布时间】:2012-11-30 18:34:08
【问题描述】:
编辑:正如 Damien_The_Unbeliever 所说,为了使问题更容易理解,最终结果是尝试“在序列中搜索子序列”。在colorList内从colorsToFind中找到Blue,Yellow,Green的序列
是否有人有一些指针来确定嵌套 for 循环的最佳方法,其中内部循环需要确定父循环中是否包含字符串序列?
因此,对于下面的示例,由于在索引 [5]、[6]、[7] 处可以找到“Blue”、“Yellow”、“Green”,因此我想返回这些索引。或者至少是 [5] 的第一个找到的索引。
我认为问题与 for (int j 循环如何在找到的索引上爆发有关。
string[] colorList = "Royal Blue", "Tomato Red", "Mustard Yellow", "Midnight Blue", "Blue", "Blue", "Yellow", "Green", "Red", "Evergreen", "Purple", "Black", "Jet Black";
string name = "Blue,Yellow,Green";
string[] colorsToFind = name.Split(',');
int found = 0;
for (int i = 0; i < colorList.Count -1; i++)
{
for (int j = 0; j < colorsToFind.Count; j++)
{
if (colorList[i] == colorsToFind[j])
{
found = i;
break;
}
}
}
if(found != 0)
{
return found;
}
return null;
【问题讨论】:
-
此外,如果发现它们,您没有捕获数组中我发现 = true 的所有索引位置。您可以将找到的值添加到内部循环中的 List
或 List .. -
那么,更清晰的表述方式可能是您想在序列中搜索子序列? (大概,没有任何中间不匹配的元素,但从你的例子中并不清楚。
-
@Damien_The_Unbeliever 这就是我要找的。我会编辑这个问题。谢谢。
标签: c# .net for-loop nested-loops