c# - C# 中的数组大小(长度)计数
问题描述
我想将最后一个零计数到下一个零的长度(在最后一个零和下一个零之间),例如:
int[] Array1 = {0,0,1,4,3,1,0,0,0};
int[] Array2 = {0,0,0,0,0,2,5,3,2,1,0,0,0,0,0,0,1,2,5,3,3,2,0,0,0,0};
愿望结果:
数组 1:4(从数组 1[2] -> 数组 1[5])
Array2: 5 (从 array1[5] -> array1[9]) & 6 (从 array1[16] -> array1[21])
对于array2,我想得到 5 & 6。
如何确定以下示例的 C# 中特殊数组的大小(长度/项目数)?
解决方案
这可以很好地处理数组 2 的 5 和 6 :
public IEnumerable<int> CountNonzeroSequences(IEnumerable<int> input)
{
int count = 0;
foreach(var item in input)
{
if (item != 0) count++;
else
{
if (count > 0) yield return count;
count = 0;
}
}
if (count > 0) yield return count;
}
你可以像这样使用它:
int[] arr1 = {0,0,1,4,3,1,0,0,0};
int[] arr2 = {0,0,0,0,0,2,5,3,2,1,0,0,0,0,0,0,1,2,5,3,3,2,0,0,0,0};
foreach(var result in CountNonzeroSequences(arr1))
{
Console.WriteLine(result);
}
Console.WriteLine();
foreach(var result in CountNonzeroSequences(arr2))
{
Console.WriteLine(result);
}
推荐阅读
- c++ - 没有 constexpr 的前向声明 - 原因是什么?
- aem - AEM版本升级后组件操作不正确
- javascript - Markdown 文件无法与 js 库一起正常工作,换行问题
- elasticsearch - 了解通过滚动查询或时间点 API 保持打开的 Elasticsearch 搜索上下文的开销
- flutter - 如何在颤动中删除文本字段光标气泡
- javascript - 我的 javascript 库无法处理所有文档元素(调用 js 库问题之前和之后)
- amcharts4 - 如何显示线系列圆形项目符号与Amcharts 4相交的所有工具提示文本?
- r - 尝试在 R 中应用创建的函数
- java - 主题:Android Firebase 中的查询——数据检索
- c# - C# 如何知道如何正确修改命名空间以使其工作?