//yield return用于无缝实现迭代模式。
生活随笔
收集整理的這篇文章主要介紹了
//yield return用于无缝实现迭代模式。
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
代碼 ?public?class?YieldReturn
????{
????????//yield?return用于無縫實現迭代模式。
???
????????string[]?strArr;
????????public?YieldReturn(params?string[]?arr)
????????{
????????????strArr?=?new?string[arr.Length];
????????????arr.CopyTo(strArr,?0);
????????????
????????}
????????
???????
????????//-------一個枚舉對象可以對應多個枚舉
????????///?<summary>
????????///?反序輸出
????????///?</summary>
????????public?IEnumerable<string>?Reverse
????????{
????????????get
????????????{
????????????????for?(int?i?=?strArr.Length?-?1;?i?>=?0;?i--)
????????????????????yield?return?strArr[i];
????????????}
????????}
????????///?<summary>
????????///?順序輸出
????????///?</summary>
????????public?IEnumerable<string>?PosEven
????????{
????????????get
????????????{
????????????????for?(int?i=0;i<strArr.Length;?i++)
????????????????????yield?return?strArr[i];
????????????}
????????}
????????public?IEnumerable<string>?Concat
????????{
????????????get
????????????{
????????????????foreach?(string?s?in?Reverse)
????????????????????yield?return?s;
????????????????foreach?(string?s?in?PosEven)
????????????????????yield?return?s;
????????????}
????????}
????????
????}
?實現:
??????public?static?void?yieldreturn()
????????{
????????????YieldReturn?yr?=?new?YieldReturn("aaa",?"bbb",?"ccc");
????????????Console.WriteLine("-----Reverse:");
????????????foreach?(string?s?in?yr.Reverse)
????????????????Console?.WriteLine?(s);
????????????Console.WriteLine("-----PosEven:");
????????????foreach?(string?s?in?yr.PosEven)
????????????????Console.WriteLine(s);
????????????Console.WriteLine("-----Concat:");
????????????foreach?(string?s?in?yr.Concat)
????????????????Console.WriteLine(s);
????????}
????{
????????//yield?return用于無縫實現迭代模式。
???
????????string[]?strArr;
????????public?YieldReturn(params?string[]?arr)
????????{
????????????strArr?=?new?string[arr.Length];
????????????arr.CopyTo(strArr,?0);
????????????
????????}
????????
???????
????????//-------一個枚舉對象可以對應多個枚舉
????????///?<summary>
????????///?反序輸出
????????///?</summary>
????????public?IEnumerable<string>?Reverse
????????{
????????????get
????????????{
????????????????for?(int?i?=?strArr.Length?-?1;?i?>=?0;?i--)
????????????????????yield?return?strArr[i];
????????????}
????????}
????????///?<summary>
????????///?順序輸出
????????///?</summary>
????????public?IEnumerable<string>?PosEven
????????{
????????????get
????????????{
????????????????for?(int?i=0;i<strArr.Length;?i++)
????????????????????yield?return?strArr[i];
????????????}
????????}
????????public?IEnumerable<string>?Concat
????????{
????????????get
????????????{
????????????????foreach?(string?s?in?Reverse)
????????????????????yield?return?s;
????????????????foreach?(string?s?in?PosEven)
????????????????????yield?return?s;
????????????}
????????}
????????
????}
?實現:
??????public?static?void?yieldreturn()
????????{
????????????YieldReturn?yr?=?new?YieldReturn("aaa",?"bbb",?"ccc");
????????????Console.WriteLine("-----Reverse:");
????????????foreach?(string?s?in?yr.Reverse)
????????????????Console?.WriteLine?(s);
????????????Console.WriteLine("-----PosEven:");
????????????foreach?(string?s?in?yr.PosEven)
????????????????Console.WriteLine(s);
????????????Console.WriteLine("-----Concat:");
????????????foreach?(string?s?in?yr.Concat)
????????????????Console.WriteLine(s);
????????}
?
轉載于:https://www.cnblogs.com/hubcarl/archive/2010/04/07/1706357.html
總結
以上是生活随笔為你收集整理的//yield return用于无缝实现迭代模式。的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: asp.net mvc的初学
- 下一篇: LINQ之路系列博客后记