Linq,根据对象列表,根据另一个属性的值创建属性列表

时间:2016-07-25 15:04:50

标签: c# linq

我需要获取updPeriods的列表,其中bitPos> 2.

class Bit
{           
  public int bitPos { get; set; }        
  public int risePeriod { get; set; }
}

List<Bit> dataBits;

我试过

IEnumerable<int> rpList = dataBits
    .Where(bit => bit.bitPos > 2)
    .Select(bit => bit.risePeriod);

IEnumerable<int> rpList = from bit in dataBits 
                          where bit.bitPos > 2 
                          select bit.risePeriod

以及其他方式,但每个都返回整个dataBits列表而不仅仅是一个risePeriods列表。这应该很简单 - 对吧?

谢谢!

1 个答案:

答案 0 :(得分:1)

我已经尝试了这个并且似乎工作正常,因为我怀疑语法和逻辑看起来是正确的。您可以尝试添加对ToList的调用,这会在检查它是整数列表时更加清晰。如果没有,那么肯定会有其他事情发生。这是我建议的代码:

IEnumerable<int> rpList = dataBits
.Where(bit => bit.bitPos > 2)
.Select(bit => bit.risePeriod)
.ToList();