Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/windows/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linq 如何使用GetEnumerator()_Linq - Fatal编程技术网

Linq 如何使用GetEnumerator()

Linq 如何使用GetEnumerator(),linq,Linq,GetEnumerator在linq中的用途是什么 有谁能用一个基本的例子向我解释一下它是如何工作的 提前感谢。返回可用于遍历集合的对象 假设您有以下数字列表: var numbers = new List<Int32>() {1, 2, 3, 4, 5}; 此代码来自Jon Skeet,我强烈推荐 在本例中,枚举数用于同时迭代两个集合,从而生成单个集合 通常,如果您想一步一步地迭代一个集合以应用某些逻辑,并且不想首先使用整个集合,则可能需要使用枚举器,因为集合可能正在使用。在提出

GetEnumerator在linq中的用途是什么

有谁能用一个基本的例子向我解释一下它是如何工作的

提前感谢。

返回可用于遍历集合的对象

假设您有以下数字列表:

var numbers = new List<Int32>() {1, 2, 3, 4, 5};
此代码来自Jon Skeet,我强烈推荐

在本例中,枚举数用于同时迭代两个集合,从而生成单个集合


通常,如果您想一步一步地迭代一个集合以应用某些逻辑,并且不想首先使用整个集合,则可能需要使用枚举器,因为集合可能正在使用。

在提出此问题之前,您是否尝试阅读一些文档?
IEnumerable<string> GetEvenStrings(IEnumerable<Int32> source)
{
    using (var enumerator = source.GetEnumerator())
        while (enumerator.MoveNext())
            if (enumerator.Current % 2 == 0)
                yield return enumerator.Current.ToString();
}
private static IEnumerable<TResult> ZipImpl<TFirst, TSecond, TResult>( 
    IEnumerable<TFirst> first, 
    IEnumerable<TSecond> second, 
    Func<TFirst, TSecond, TResult> resultSelector) 
{ 
    using (IEnumerator<TFirst> iterator1 = first.GetEnumerator()) 
    using (IEnumerator<TSecond> iterator2 = second.GetEnumerator()) 
    { 
        while (iterator1.MoveNext() && iterator2.MoveNext()) 
        { 
            yield return resultSelector(iterator1.Current, iterator2.Current); 
        } 
    } 
}