从IEnumerable <T>获取一个独特的ID列表

mpe*_*row 7 c# linq ienumerable

我有一个IEnumerable,我想获得所有不同的MaterialID.我的代码有效,但我想知道是否有更好的方法可以使用LINQ.这是我的代码:

    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;
    }
Run Code Online (Sandbox Code Playgroud)

任何帮助将不胜感激,因为我正在学习LINQ如何帮助我.

Kir*_*oll 28

tankReadings.Select(o => o.MaterialID).Distinct();
Run Code Online (Sandbox Code Playgroud)