Jad*_*ias 31 .net c# ienumerable
yield return当返回类型是a IGrouping<TKey, TElement>还是IDictionary<TKey, TValue>?时,我可以使用吗?
Mar*_*ell 46
yield return 适用于4种情况:
IEnumerableIEnumerable<T>IEnumeratorIEnumerator<T>这是因为它必须在内部构建状态机; 这是不可能的字典(等).你当然可以return选择合适的类型.
Tim*_*ter 17
然而IEnumerable<KeyValuePair<K,V>>,您可以返回类似于字典的内容.然后,您将返回KeyValuePairs.您甚至可以使用另一种在返回时创建字典的方法来包装它.第一种方法唯一不能保证的是密钥的唯一性.
答:编号A yield return语句只能如果返回类型为使用IEnumerator,IEnumerator<T>,IEnumerable,或IEnumerable<T>。
根据C#3.0规范的第 8.14节:
yield语句用于迭代器块(第8.2节)中,以将值产生给迭代器的枚举器对象(第10.14.4节)或可枚举的对象(第10.14.5节),或用信号通知迭代结束。
从§10.14.4开始:
枚举器对象具有以下特征:
IEnumerator和IEnumerator<T>,T迭代器的yield类型在哪里。[...]
从§10.14.5开始:
可枚举的对象具有以下特征:
IEnumerable和IEnumerable<T>,T迭代器的yield类型在哪里。[...]
| 归档时间: |
|
| 查看次数: |
12583 次 |
| 最近记录: |