gpt4 book ai didi

c# - C#-搜索数组中的序列

转载 作者:太空宇宙 更新时间:2023-11-03 18:10:24 25 4
gpt4 key购买 nike

我有一些填充有1和0的数组。是否有任何简单的方法来查找例如值1彼此相邻的10个字段?

像这样:if(array [i ... i + 10] = 1)->做些什么?

我知道我可以使用for来做到这一点,但是我有一个巨大的多重数组,这将非常有帮助。

最佳答案

您可以使用for循环轻松完成此操作:

int c = 0;
for (int i = 0; i < myArray.Length; i++)
{
c = (myArray[i] == 1) ? c + 1 : 0;
if (c >= 10)
{
// do stuff
}
}


这是使用Linq的另一种方法:

var indexes =
from i in Enumerable.Range(0, myArray.Length - 10)
where myArray.Skip(i).Take(10).All(x => x == 1)
select i;
foreach(var i in indexes)
{
// do stuff
}


这将返回 myArray的所有索引,其中该索引处的元素和接下来的9个索引元素均等于1。但是,此方法的效率比简单的for循环要低一些,因为它可能多次检查每个项目。

如果您喜欢流利的语法:

var indexes = Enumerable.Range(0, myArray.Length - 10)
.Where(i => myArray.Skip(i).Take(10).All(x => x == 1));
foreach(var i in indexes)
{
// do stuff
}

关于c# - C#-搜索数组中的序列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16884028/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com