6.数组 枚举 -C#高级编程
2016-12-10 18:54
134 查看
本文固定链接:http://blog.csdn.net/u013108312/article/details/53560283
using System; using System.Collections; using System.Collections.Generic; namespace Wrox.ProCSharp.Arrays { public class HelloCollection { public IEnumerator<string> GetEnumerator() { yield return "Hello"; yield return "World"; } } class Program { static void Main() { HelloWorld(); MusicTitles(); var game = new GameMoves(); IEnumerator enumerator = game.Cross(); while (enumerator.MoveNext()) { enumerator = enumerator.Current as IEnumerator; } } static void MusicTitles() { var titles = new MusicTitles(); foreach (var title in titles) { Console.WriteLine(title); } Console.WriteLine(); Console.WriteLine("reverse"); foreach (var title in titles.Reverse()) { Console.WriteLine(title); } Console.WriteLine(); Console.WriteLine("subset"); foreach (var title in titles.Subset(2, 2)) { Console.WriteLine(title); } } static void HelloWorld() { var helloCollection = new HelloCollection(); foreach (string s in helloCollection) { Console.WriteLine(s); } } } }
using System; using System.Collections; using System.Linq; using System.Text; namespace Wrox.ProCSharp.Arrays { public class GameMoves { private IEnumerator cross; private IEnumerator circle; public GameMoves() { cross = Cross(); circle = Circle(); } private int move = 0; const int MaxMoves = 9; public IEnumerator Cross() { while (true) { Console.WriteLine("Cross, move {0}", move); if (++move >= MaxMoves) yield break; yield return circle; } } public IEnumerator Circle() { while (true) { Console.WriteLine("Circle, move {0}", move); if (++move >= MaxMoves) yield break; yield return cross; } } } }
using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace Wrox.ProCSharp.Arrays { public class MusicTitles { string[] names = { "Tubular Bells", "Hergest Ridge", "Ommadawn", "Platinum" }; public IEnumerator<string> GetEnumerator() { for (int i = 0; i < 4; i++) { yield return names[i]; } } public IEnumerable<string> Reverse() { for (int i = 3; i >= 0; i--) { yield return names[i]; } } public IEnumerable<string> Subset(int index, int length) { for (int i = index; i < index + length; i++) { yield return names[i]; } } } }
Hello World Tubular Bells Hergest Ridge Ommadawn Platinum reverse Platinum Ommadawn Hergest Ridge Tubular Bells subset Ommadawn Platinum Cross, move 0 Circle, move 1 Cross, move 2 Circle, move 3 Cross, move 4 Circle, move 5 Cross, move 6 Circle, move 7 Cross, move 8
相关文章推荐
- 枚举数组,static, WM_SIZE消息
- 用枚举定义有意义的数组下标
- [叩响C#之门]第5章 枚举、结构体和数组 5.2 结构体
- [Bug]枚举数组,并找到某些元素删除
- 1.0 基础、标示符、常量、数据类型(enum 枚举,struct 结构体)、操作符、循环、数组
- java数组与枚举(课本练习)
- Swift - 复杂数据类型说明(数组,字典,结构体,枚举)
- C#基本数据结构——枚举、结构体、数组和集合
- 枚举-排序-数组
- c语言枚举和数组
- 10月25日学习总结之 C#数组和枚举
- 【基础知识】数组和枚举
- C#学习笔记12:枚举、结构、数组基础学习
- 黑马程序员--.NET笔记--枚举、数组、排序、方法、变量的作用域、重载
- 枚举类型作数组下标
- 枚举,结构,数组
- 《C#高级编程》【第六章】数组 -- 学习笔记
- ObjectC----字典类和集合类以及快速枚举和OC中的数组排序
- 【OC加强】枚举介绍、数组的排序、对象的排序、如何利用block排序以及一些数据类型知识
- PKU 1743(求最长重复但不重叠子串,后缀数组 + 二分枚举答案)