首页 新闻 搜索 专区 学院

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

0
悬赏园豆:10 [待解决问题]
 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> _() 这个什么意思?
不要相信我的主页 不要相信我 | 初学一级 | 园豆:56
提问于:2018-02-02 08:16
< >
分享
所有回答(3)
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 _(); 
不要相信我 | 园豆:56 (初学一级) | 2018-02-02 08:31
0
yield return element;

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

油纸伞 | 园豆:37 (初学一级) | 2018-02-02 11:36
0

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

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