2010-08-03 64 views
4

我有一个IEnumerable,我想要获取所有不同的MaterialID。我有代码工作,但我想知道是否有更好的方式使用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 2010-08-03 17:04:31