我試圖找出一種方式來使用TakeWhile打破一個循環時,滿足一些條件。當計數或長度條件滿足時使用TakeWhile打破循環
即
var i = 0;
List<IContent> t = new List<IContent>();
// children is a List<> with lots of items
foreach (var x in children)
{
if (i >= 10)
{
break;
}
if (x.ContentTypeID == 123)
{
i++;
t.Add(x);
}
}
我想要做的是編寫使用LINQ,而不是
var i = 0;
var a = children.TakeWhile(
x =>
{
if (i >= 10)
{
break; // wont work
}
if (x.ContentTypeID == 123)
{
i++;
return true;
}
return false;
});
任何想法?由於
不會遍歷整個'children'列表嗎? –
@EricHerlitz不,如果你有超過10個匹配的項目。正如你的第一個循環所做的那樣 –
似乎你是對的,愚蠢的我會過度複雜的事情 –