c# Group a list and get the count of each group
<p>I have a list of strings with multiple entries of the same value. I need to get all unique elements in the list as well as the count of each unique element group.
For example:</p>

<pre><code>        string a = "cat";
        string b = "dog";
        string c = "cat";
        string d = "horse";

        List&lt;string&gt; list = new List&lt;string&gt;();

        list.Add(a);
        list.Add(b);
        list.Add(c);
        list.Add(d);
</code></pre>

<p>I need this data: "cat"--2, "dog"--1, "horse"--1</p>