jjzjj

GetEnumerator

全部标签

c# - 为什么 foreach 找不到我的 GetEnumerator 扩展方法?

我正在努力使一些代码更具可读性。例如foreach(varrowintable){...}而不是foreach(DataRowrowintable.Rows){...}.为此,我创建了一个扩展方法:namespaceSystem.Data{publicstaticclassMyExtensions{publicstaticIEnumerableGetEnumerator(thisDataTabletbl){foreach(DataRowrintbl.Rows)yieldreturnr;}}}但编译器仍然抛出foreachstatementcannotoperateonvariables

c# - yield 是如何枚举的?

我在玩弄yield和IEnumerable我现在很好奇以下代码片段为何或如何工作:publicclassFakeList:IEnumerable{privateintone;privateinttwo;publicIEnumeratorGetEnumerator(){yieldreturnone;yieldreturntwo;}IEnumeratorIEnumerable.GetEnumerator(){returnGetEnumerator();}}现在编译器如何转换它:publicIEnumeratorGetEnumerator(){yieldreturnone;yieldretu

c# - yield 是如何枚举的?

我在玩弄yield和IEnumerable我现在很好奇以下代码片段为何或如何工作:publicclassFakeList:IEnumerable{privateintone;privateinttwo;publicIEnumeratorGetEnumerator(){yieldreturnone;yieldreturntwo;}IEnumeratorIEnumerable.GetEnumerator(){returnGetEnumerator();}}现在编译器如何转换它:publicIEnumeratorGetEnumerator(){yieldreturnone;yieldretu

c# - 如何使用 GetEnumerator() 实现 IEnumerable<T>?

这个问题在这里已经有了答案:TroublesimplementingIEnumerable(7个答案)关闭8年前。我希望我的类型实现IEnumerable.我试图简而言之遵循C#,但出了点问题:publicclassSimulation:IEnumerable{privateIEnumerableEvents(){yieldreturn"a";yieldreturn"b";}publicIEnumeratorGetEnumerator(){returnEvents().GetEnumerator();}}但是我得到构建错误Error1'EventSimulator.Simulation

C# Foreach 语句不包含 GetEnumerator 的公共(public)定义

我在使用C#构建的Windows窗体应用程序时遇到问题。错误指出“foreach语句无法对类型为‘CarBootSale.CarBootSaleList’的变量进行操作,因为‘CarBootSale.CarBootSaleList’不包含‘GetEnumerator’的公共(public)定义”。我似乎不明白是什么原因造成的。这是抛出错误的代码:ListSortcarboot=newList();foreach(CarBootSalecincarBootSaleList){if(c.Charity=="N/A"){Sortcarboot.Add(carBootSaleList);tex
12