使用 linq 将以下内容应用于序列的最易读的方法是什么:
TakeWhile elements are valid but always at least the first element
编辑:我更新了标题,更准确地说。对于任何混淆,我深表歉意,下面的答案肯定教会了我一些东西!
预期的行为是这样的:在元素有效时获取。如果结果是一个空序列,无论如何都取第一个元素。
最佳答案
我认为这使得意图非常明确:
things.TakeWhile(x => x.Whatever).DefaultIfEmpty(things.First());
我之前更详细的解决方案:
var query = things.TakeWhile(x => x.Whatever);
if (!query.Any()) { query = things.Take(1); }
关于c# - Linq 对象 : TakeWhileOrFirst,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4939708/