2016-07-25 56 views
0

我需要得到risePeriods列表的属性的列表,其中位位置> 2.LINQ的,从对象列表,创建基于另一个属性的值

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列表。这应该很简单 - 对吧?

谢谢!

+0

你确定吗?尝试:'rpList = rpList.ToList()'或者(如果要替换原有的列表):'数据位= rpList.ToList()' –

+0

你确定你正在寻找的变量rpList,而不是数据位的结果呢? – Hogan

回答

1

我已经试过这样做,它似乎是工作的罚款,因为我怀疑是语法和逻辑看起来是正确的。你可以尝试增加ToList通话,这将使其更清晰,当检查,这是一个整数列表。如果不是,这里肯定还有别的事情要做。下面的代码,我建议:

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

的.ToList()就是答案! –

相关问题