2013-07-18 2 views
0

Я уверен, что это можно легко сделать с Linq, но я не могу понять это.Извлеките два первых элемента, которые соответствуют условию

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

Что я притворяюсь, чтобы сделать это, чтобы получить два первых объектов, которые имеют свой набор свойство IsSelected в действительности.

Я не могу использовать синтаксис, написанный выше, потому что компилятор не может использовать «локальную переменную ls2 до ее объявления».

ответ

7

Используйте Where, чтобы фильтровать только выбранные результаты, затем используйте Take, чтобы выбрать первые два, например.

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

Попробуйте это:

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

Вы должны использовать метод Take и сделать это

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