Question: How can I find all indexes of a pattern in a string using c#? 

For example I want to find all `##` pattern indexes in a string like this `45##78$$#56$$JK01UU`

Answer: 
You can get all the indices of a pattern in a string by using a regex search like this.

```
string input = "45##78$$#56$$JK01UU", pattern = Regex.Escape("##");
Regex rx = new Regex(pattern);
var indices = new List<int>();
var matches = rx.Matches(s);
for (int i=0 ; i<matches.Length ; i++)
{
    indices.Add(matches[i].Index);
}

```
Tested. Worked. But somewhat dumb.

```
string foo = "45##78$$#56$$JK01UU";
char[] fooChar = foo.ToCharArray();

int i = 0;
bool register = false;

foreach (char fc in fooChar)
{
    if (fc == '#' && register == true)
    {
        MessageBox.Show("Index: " + (i-1));
    }
    else if (fc == '#')
    {
        register = true;
    }
    else
    {
        register = false;
    }
    i++;
}

```