yield---迭代集合的不同方式
yield return 语句返回集合的一个元素
yield break 可停止迭代
------------------------------------------------------------------Student.cs
usingSystem;usingSystem.Collections.Generic;usingSystem.Linq;usingSystem.Text;usingSystem.Threading.Tasks;namespaceConsoleApplication3{publicclassStudent{string[]str=newstring[]{"张飞","关羽","贝贝","香香"};///<summary>///正序迭代///</summary>///<returns></returns>publicIEnumerator<string>GetEnumerator(){for(inti=0;i<str.Length;i++){yieldreturnstr[i];}}///<summary>///倒序迭代///</summary>///<returns></returns>publicIEnumerable<string>Reverse(){for(inti=str.Length-1;i>=0;i--){yieldreturnstr[i];}}///<summary>///自定义迭代///</summary>///<paramname="i">开始索引</param>///<paramname="j">长度</param>///<returns></returns>publicIEnumerable<string>Subset(intindex,intlength){for(inti=index;i<index+length;i++){yieldreturnstr[i];}}}}
------------------------------------------------------------------主程序
usingSystem;usingSystem.Collections.Generic;usingSystem.Linq;usingSystem.Text;usingSystem.Threading.Tasks;namespaceConsoleApplication3{classProgram{staticvoidMain(string[]args){Students=newStudent();foreach(varitemins)//正序迭代{Console.WriteLine(item);}Console.WriteLine("reverse");foreach(varitemins.Reverse())//倒序迭代{Console.WriteLine(item);}Console.WriteLine("subset");//自定义迭代foreach(varitemins.Subset(1,1)){Console.WriteLine(item);}Console.ReadKey();}}}
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。