Iterating through a collection of objects
You can do the same with just a foreach loop instead of reading the enumerator.

You can use the String.Compare method to do a case insensetive compare instead of creating a lowercase version of each string that you compare.

Improved improved code:

public List&lt;string&gt; getParentPegs(IGrouping&lt;string, SupplyDemand&gt; data) {

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

  foreach (SupplyDemand obj in data) {
    if (String.Compare(obj.Source, "make", true) == 0) {
      result.Add(obj.Peg);
    }
  }

  return result;
}


Note: In your first code you are getting the property Part, but in the second you are getting the property Peg instead.