2010-08-03 3 views
4

모든 고유 한 MaterialID를 가져 오려면 IEnumerable이 있어야합니다. 작동하는 코드가 있지만 LINQ를 사용하여 더 좋은 방법이 있는지 궁금합니다. 여기에 내가 가지고있는 코드는 다음과 같습니다.IEnumerable에서 고유 ID 목록 가져 오기 <T>

private IEnumerable<int> GetDistinctMaterialIDs(IEnumerable<TankReading> tankReadings) 
    { 
     var distinctMaterialIDs = new List<int>(); 
     foreach (var tankReading in tankReadings) 
     { 
      if (!distinctMaterialIDs.Contains(tankReading.MaterialID)) 
      { 
       distinctMaterialIDs.Add(tankReading.MaterialID); 
      } 
     } 
     return distinctMaterialIDs; 
    } 

LINQ가 어떻게 도움이되는지 배우고 있다면 도움이 될 것입니다.

답변

24
tankReadings.Select(o => o.MaterialID).Distinct(); 
+3

Doh! 나는 수치심으로 양보한다 ... – ChaosPandion