C# 不允许 lambda 函数表示迭代器块(例如,在 lambda 函数内不允许“yield return”)。例如,如果我想创建一个在枚举时产生所有驱动器的惰性枚举,我想做类似的事情
IEnumerable<DriveInfo> drives = {foreach (var drive in DriveInfo.GetDrives())
yield return drive;};
花了一段时间,但我认为这是获得该功能的一种方式:
var drives = Enumerable.Range(0, 1).SelectMany(_ => DriveInfo.GetDrives());
有没有更惯用的方法?