2013-02-27 69 views
-4

我有一个具有四个布尔值的数组。我想找到第n个真正的索引。例如,如果它们是false, true, true, true而n是2,它将返回3.有什么方法可以轻松地做到这一点?我所有的尝试都很快就变成了一团糟。如何找到数组中第n个元素的索引以匹配条件?

+0

我试过'Array.IndexOf(myarray的,true,Array.IndexOf(myArray,true,0))',将它嵌套到另一个时间,以得到我想要的结果,但我确信有更好的方法。 – undergroundmonorail 2013-02-27 06:51:26

+0

你会怎么做?你会穿过阵列,直到找到满足条件的第一个元素。现在你不需要找到n而是n-1,并且你继续通过数组直到n为0,现在你应该处于满足条件的第n个元素的位置。 – Corak 2013-02-27 06:53:02

+0

您需要多次调用'Array.IndexOf(bool [],bool,int)('n'次才能找到第n个出现)。每次使用前一次调用的输出(加一)作为下一次调用的'startIndex'。使用'for'循环来重复你的'n'。 – 2013-02-27 07:13:55

回答

1

你为什么不使用一个简单的foreach,虽然你的数组没有很多元素不会把任何低效率的代码:

var ReachCount=2; 
var count=0; 
Boolean[] bools = {false, true, true, false}; 
foreach (Boolean element in bools) 
{ 
    if (element) count++; 
    if (count==ReachCount) return; 
} 
+0

因为无论如何你都需要这个索引,所以你最好使用'for'循环而不是'foreach'循环。 – 2013-02-27 07:33:03

+0

是的,也许最好是用'for'循环来做 – 2013-02-27 07:42:40

相关问题