有可能吗?
List<Cat> _Cats; // created somewhere else
public IEnumerable<Cat> LeadWithLolCat()
{
yield return RandomLolCat();
// can we return all the other cats without creating a loop?
foreach ( var cat in _Cats ) // -> so not like this
yield return cat;
}
答案 0 :(得分:3)
您可以尝试使用Concat
,如下所示:
public IEnumerable<Cat> LeadWithLolCat()
{
return new [] { RandomLolCat() }.Concat(_Cats);
}
答案 1 :(得分:-3)
要直接回答问题,我不相信根据您的语法可以达到您想要的结果。
听起来你想要的是返回已知List<Cat>
前加RandomLolCat
的{{1}}。为什么不在没有yield
关键字的情况下执行此操作?
List<Cat> _Cats; // created somewhere else
public IEnumerable<Cat> LeadWithLolCat()
{
var result = _Cats.Select(e=> e);
result.Insert(new RandomLolCat(), 0);
return result;
}