草庐IT

ITERATOR

全部标签

c# - 异步任务<IEnumerable<T>> 抛出 "is not an iterator interface type"错误

仅当我使用async时,下面的代码才会抛出isnotaniteratorinterfacetypeawait并包装IEnumerable与任务。如果我删除asyncawait,它将与IEnumerable>一起使用.privateasyncTask>>GetTableDataAsync(CloudTablecloudTable,TableQuerytableQuery)whereT:ITableEntity,new(){TableContinuationTokencontineousToken=null;do{varcurrentSegment=awaitGetAzureTableDa

c# - 调用使用 yield 返回的方法时出现错误 'Iterator cannot contain return statement '

我希望有更好的方法来编写此方法和重载,同时减少代码重复。我想返回列表中项目之间的一系列增量。这个方法:-publicstaticIEnumerableCalculateDeltas(thisIEnumerablesequence){decimalprev=default(decimal);foreach(variteminsequence){varcurrent=item;decimaldiff=current-prev;prev=item;yieldreturndiff;}}工作得很好。然后我想到了一个允许绝对增量的重载,但如果不需要绝对值,则会调用原始方法:-publicstati

c# - .Net 2 迭代器的巧妙使用

关闭。这个问题是opinion-based.它目前不接受答案。想要改进这个问题?更新问题,以便editingthispost可以用事实和引用来回答它.关闭5年前。ImprovethisquestionC#2和VB.Net8引入了一个名为iterators的新功能,旨在使返回枚举数和枚举数变得更容易。然而,迭代器实际上是coroutines的一种有限形式。,并且可以用来做许多与对象集合无关的有用的事情。您在实际代码中看到过哪些迭代器的非标准用法?

c# - 什么是 C# 迭代器和生成器,我该如何使用它们

我是一名VB.Net开发人员,有点像C#的新手,在查看Iterators和Generators的C#文档时,无法完全理解其用法,我有任何人可以解释(在vb中有洞察力;如果可能的话) 最佳答案 迭代器是一种生成项目序列的简单方法,无需实现IEnumerable/IEnumerator你自己。迭代器是一种返回IEnumerable的方法您可以在foreach循环中枚举。这是一个简单的例子:publicIEnumerableGetNames(){yieldreturn"Joe";yieldreturn"Jack";yieldreturn"

c# - C#迭代器中的递归

是否可以在实现System.Collections.IEnumerable的迭代器中使用递归?我有一个大致如下声明的树结构:publicclassNode{publicNodeSibling;publicNodeChild;}我想遍历树中的节点。我想做这样的事情(伪代码,我想这不会编译):publicclassNodeIterator:System.Collections.IEnumerable{Nodem_root;publicSystem.Collections.IEnumeratorGetEnumerator(){recursiveYield(m_root);}System.Co

c# - 如何一次遍历两个数组?

我在解析文本文件时构建了两个数组。第一个包含列名,第二个包含当前行的值。我需要一次遍历两个列表来构建map。现在我有以下内容:varcurrentValues=currentRow.Split(separatorChar);varvalueEnumerator=currentValues.GetEnumerator();foreach(StringcolumnincolumnList){valueEnumerator.MoveNext();valueMap.Add(column,(String)valueEnumerator.Current);}这工作得很好,但它并不能完全满足我的优雅

c# - Queue 上的 IEnumerable 迭代器是否应该使项目出列

我创建了一个实现通用IQueue接口(interface)的自定义通用队列,该接口(interface)使用System.Collections.Generic命名空间中的通用队列作为私有(private)内部队列。示例已清除不相关的代码。publicinterfaceIQueue{voidEnqueue(TQueueItemqueueItem);TQueueItemDequeue();}publicclassCustomQueue:IQueue{privatereadonlyQueuequeue=newQueue();...publicvoidEnqueue(TQueueItemqu

c# - 迭代器 block 和继承

给定一个具有以下接口(interface)的基类:publicclassBase{publicvirtualIEnumerableGetListOfStuff(){yieldreturn"First";yieldreturn"Second";yieldreturn"Third";}}我想创建一个重写方法的派生类,并添加自己的东西,如下所示:publicclassDerived:Base{publicoverrideIEnumerableGetListOfStuff(){foreach(stringsinbase.GetListOfStuff()){yieldreturns;}yield

javascript - 我如何交错/合并异步迭代器?

假设我有一些这样的异步可迭代对象:consta={[Symbol.asyncIterator]:asyncfunction*(){yield'a';awaitsleep(1000);yield'b';awaitsleep(2000);yield'c';},};constb={[Symbol.asyncIterator]:asyncfunction*(){awaitsleep(6000);yield'i';yield'j';awaitsleep(2000);yield'k';},};constc={[Symbol.asyncIterator]:asyncfunction*(){yield

javascript - ES6 做 for of get prototype values - 如何检查 hasownproperty

使用for...in我总是检查hasOwnProperty(我想这是使用Object.keys的一个很好的论据),例如:for(letainobj){if(obj.hasOwnProperty(a)){//logic}}当我使用for...of时是否需要做同样的检查?如果需要,我应该怎么做?根据MDNpageonfor...ofWhilefor...initeratesoverpropertynames,for...ofiteratesoverpropertyvalues但是它没有说明该迭代是包含继承属性还是仅包含实例属性。那里给出的解释和示例代码仅涉及实例属性。