Convert List to Dictionary (a map of key and the filtered list as value)
<pre><code>class Animal
    {
        public FoodTypes Food { get;set;} 
        public string Name { get; set; }
    }
    enum FoodTypes
    {
        Herbivorous,
        Carnivorous
    }

    class Util
    {
        public static Dictionary&lt;FoodTypes,List&lt;Animal&gt;&gt; GetAnimalListBasedOnFoodType(List&lt;Animal&gt; animals)
        {
            Dictionary&lt;FoodTypes, List&lt;Animal&gt;&gt; map = new Dictionary&lt;FoodTypes, List&lt;Animal&gt;&gt;();
            var foodTypes = animals.Select(o =&gt; o.Food).Distinct();
            foreach(var foodType in foodTypes)
            {
                if (!map.ContainsKey(foodType))
                    map.Add(foodType, null);
                map[foodType] = animals.Where(o =&gt; o.Food == foodType).ToList();
            }
            return map;
        }
    }
</code></pre>

<p>The above code is to get the idea of what I am trying to achieve. Now, the question is 
<strong>Is it possible to achieve the functionality of GetAnimalListBasedOnFoodType in a single lambda expression?</strong></p>