首页 新闻 搜索 专区 学院

请问大神这个C#方法是什么意思

0
悬赏园豆:10 [已解决问题] 解决于 2020-10-22 18:03
 return _(); IEnumerable<TSource> _() {
    foreach (var element in source)
    {
        var success = predicate(element);
        if (!success)
            throw errorSelector?.Invoke(element) ?? new InvalidOperationException("Sequence contains an invalid item.");
        yield return element;
    }
}
return _(); IEnumerable<TSource> _() 这个什么意思?
不要相信我的主页 不要相信我 | 初学一级 | 园豆:57
提问于:2018-02-02 08:16
< >
分享
最佳答案
0
yield return element;

这个的返回IEnumerable类型的泛型集合,该集合是属于那种Lazy模式,只有对这个集合进行循环时才执行该这个方法,平时在内存中不存在任何元素

收获园豆:10
油纸伞 | 初学一级 |园豆:47 | 2018-02-02 11:36
其他回答(2)
0

就是local function的写法, 等同

IEnumerable<TSource> _() {
    foreach (var element in source)
    {
        var success = predicate(element);
        if (!success)
            throw errorSelector?.Invoke(element) ?? new InvalidOperationException("Sequence contains an invalid item.");
        yield return element;
    }
}

return _(); 
不要相信我 | 园豆:57 (初学一级) | 2018-02-02 08:31
0

这可读性也太差了点。第一次见

数据酷软件 | 园豆:130 (初学一级) | 2018-02-02 11:54
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册