我需要得到一个risePeriods列表,其中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列表。这应该很简单,对吧?
谢谢!
我已经尝试过了,它似乎运行良好,正如我所怀疑的那样,因为语法和逻辑看起来是正确的。您可以尝试添加对ToList
的调用,这将使它在检查时更清楚地表明它是一个整数列表。如果没有,这里肯定还有其他事情发生。这是我建议的代码:
IEnumerable<int> rpList = dataBits
.Where(bit => bit.bitPos > 2)
.Select(bit => bit.risePeriod)
.ToList();