Linq,从对象列表中,创建基于另一个属性的属性列表';s值

本文关键字:属性 列表 对象 创建 Linq 另一个 | 更新日期: 2023-09-27 17:58:30

我需要得到一个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列表。这应该很简单,对吧?

谢谢!

Linq,从对象列表中,创建基于另一个属性的属性列表';s值

我已经尝试过了,它似乎运行良好,正如我所怀疑的那样,因为语法和逻辑看起来是正确的。您可以尝试添加对ToList的调用,这将使它在检查时更清楚地表明它是一个整数列表。如果没有,这里肯定还有其他事情发生。这是我建议的代码:

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