C# 计算一个';它连续地重复,重复了多少次?

C# 计算一个';它连续地重复,重复了多少次?,c#,C#,假设一个数组有'p'和'a' string[] value = new string[] {"p","p",**"a","a","a","a"**,"p","p",**"a","a"**,"p"}; 连续a的计数 repeat count --> Count of consecutive 1 -> 4 2 -> 2 我需要这种输出。使用哪种方法或格式并不重要 注意:数组的长度不是恒定的。这里有一个快速简单的例子,通过跟踪最后一

假设一个数组有'p'和'a'

string[] value = new string[] {"p","p",**"a","a","a","a"**,"p","p",**"a","a"**,"p"};
连续a的计数

repeat count --> Count of consecutive
1             -> 4
2             -> 2
我需要这种输出。使用哪种方法或格式并不重要


注意:数组的长度不是恒定的。

这里有一个快速简单的例子,通过跟踪最后一个字符并将其与当前字符进行比较,并保持重复计数,可以迭代列表并查找重复的字符

我使用的是
char[]
数组,因为这似乎比使用
string
来存储单个字符更合适

如果您想将逻辑扩展为只执行“p”和“a”,我相信您可以使用下面的代码作为良好的基础示例,并从中构建

char[] values = new char[] { 'p', 'p', 'a', 'a', 'a', 'a', 'p', 'p', 'a', 'a', 'p' };

char lastChar = values.FirstOrDefault();
List<int> consecutiveCount = new List<int>();
int i = 0;
foreach (char value in values)
{
    if (value == lastChar)
    {
        i++;
        continue;
    }

    consecutiveCount.Add(i);
    lastChar = value;
    i = 1;
}

Console.WriteLine(string.Join(",", consecutiveCount));
char[]values=新字符[]{'p','p','a','a','a','a','p','p','a','a','p'};
char lastChar=values.FirstOrDefault();
List CONCEDUTIVECOUNT=新列表();
int i=0;
foreach(值中的字符值)
{
if(值==lastChar)
{
i++;
继续;
}
连续计数添加(i);
lastChar=值;
i=1;
}
Console.WriteLine(string.Join(“,”连续计数));

您尝试过什么吗?你在实现这一点时遇到了什么困难?我是一个新手,我知道如何计算重复值的总数