C#我有一个list存储着一组数字 帮我写一个函数 返回一个字典 判断有连续的数字 若有则存储key为起始数字 value为连续数字的个数 没有的话 就存储数字 0
时间: 2024-09-25 07:17:30 浏览: 26
天津理工大学.NET实验一 C#的数据结构和控制结构
在C#中,你可以创建一个函数,名为`FindContinuousNumbersAndCount`, 来实现这个功能。下面是一个示例函数,它接受一个整数列表作为输入,返回一个字典,键值对表示连续数字及其计数:
```csharp
using System;
using System.Collections.Generic;
public Dictionary<int, int> FindContinuousNumbersAndCount(List<int> numbers)
{
Dictionary<int, int> result = new Dictionary<int, int>();
int currentNumber = numbers[0];
int count = 1;
for (int i = 1; i < numbers.Count; i++)
{
if (numbers[i] == currentNumber + 1)
{
count++;
}
else
{
// 如果遇到不连续的数字,添加之前的连续序列到结果字典
if (count > 1)
{
result[currentNumber] = count;
}
// 更新当前数字和计数
currentNumber = numbers[i];
count = 1;
}
}
// 处理最后一个可能的连续序列
if (count > 1)
{
result[currentNumber] = count;
}
return result;
}
// 示例用法
List<int> numberList = new List<int>{ 1, 2, 3, 5, 7, 8, 9, 11, 12, 13 };
Dictionary<int, int> result = FindContinuousNumbersAndCount(numberList);
foreach (KeyValuePair<int, int> entry in result)
{
Console.WriteLine($"数字 {entry.Key}: 连续计数 {entry.Value}");
}
```
这个函数首先初始化当前数字和计数,然后逐个检查列表中的数字。如果下一个数字比当前数字大1,则继续计数;否则,将之前连续的数字添加到字典中,并更新当前数字和计数。
阅读全文