检索与条件匹配的两个第一个元素

时间:2013-07-18 15:22:49

标签: c# linq

我确信这可以通过Linq轻松完成,但我无法理解。

var ls1 = plotter.Model.Series.FirstOrDefault(x => x.IsSelected);
var ls2 = plotter.Model.Series.FirstOrDefault((x => x.IsSelected)&&(ls2!=ls1));

我假装要做的是获取属性IsSelected设置为true的两个第一个对象。

我不能使用上面写的语法,因为编译器在声明之前不能使用“局部变量ls2。”

4 个答案:

答案 0 :(得分:7)

使用Where仅过滤所选结果,然后使用Take选择前两个,例如

plotter.Model.Series.Where(x => x.IsSelected).Take(2);

答案 1 :(得分:1)

试试这个:

var ls1and2 = plotter.Model.Series.Where(x => x.IsSelected).Take(2);

答案 2 :(得分:1)

var ls1 = plotter.Model.Series.Where(x => x.IsSelected).Take(2);

答案 3 :(得分:1)

您应该使用Take方法并执行此操作

var ls1 = plotter.Model.Series.Where(x => x.IsSelected).Take(2);