Question: taken a string example as `550e8400-e29b-41d4-a716-446655440000` how can one **count how many** `-` chars are in such string?

I'm currently using:

```
int total = "550e8400-e29b-41d4-a716-446655440000".Split('-').Length + 1;

```

Is there any method that we don't need to add 1... like using the `Count` maybe?

All other methods such as

`Contains` `IndexOf` etc only return the first position and a `boolean` value, nothing returns **how many** were found.

what am I missing?

Answer: 
You can use the LINQ method [`Enumerable.Count`](http://msdn.microsoft.com/en-us/library/bb535181.aspx) for this purpose (note that a `string` is an `IEnumerable<char>`):

```
int numberOfHyphens = text.Count(c => c == '-');

```

The argument is a `Func<char, bool>`, a predicate that specifies when an item is deemed to have 'passed' the filter.

This is (loosely speaking) equivalent to:

```
int numberOfHyphens = 0;

foreach (char c in text)
{
    if (c == '-') numberOfHyphens++;
}

```
To find the number of '-' in a string, you are going to need to loop through the string and check each character, so the simplest thing to do is to just write a function that does that. Using Split actually takes more time because it creates arrays for no reason. 

Also, it's confusing what you are trying to do, and it even looks like you got it wrong (you need to subtract 1).