开发一些游戏程序时,经常会用到对字符串或数字的倒序遍历功能。当然,该功能可以使用常用的排序算法进行实现。但是对于使用C#4.5进行开发的程序员来说,迭代器显然是一种更加简单高效的实现倒序遍历功能的方法。
本实例将使用迭代器,实现字符串或数字的倒序遍历功能,主要使用for语句和迭代器的IEnumerable接口,以及yield return语句对指定的字符串儿进行倒序遍历。在迭代器中遍历字符串中的每个元素时,为了便于获取元素的类型,将迭代器的返回值设置为object对象。
程序界面:
程序代码:
using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Threading.Tasks;using System.Windows.Forms;namespace WindowsFormsApplication1{ public partial class ArrayReverse2 : Form { public ArrayReverse2() { InitializeComponent(); } /// <summary> /// 文本改变事件,当触发该事件时实现用户输入的字符串倒序遍历,并输出到相应文本框中 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void textBox1_TextChanged(object sender, EventArgs e) { char[] chr = textBox1.Text.ToCharArray();//将用户输入的文本转化为字符数组使用ToCharArray方法 Array.Reverse(chr, 0, chr.Length);//将字符数组进行倒序存储,使用Reverse方法,当参数不同时,可以对部分字符串进行倒序存储,第二个参数索引开始,到第三个参数长度结束 textBox2.Text = new StringBuilder().Append(chr).ToString();//当在一个循环中将许多字符串连接在一起时,使用StringBuilder类可以提升性能,而且前面已经分配的数据不会被销毁,而是直接追加到后面 } }}
结语:
实用的IEnumerable接口公开了枚举数,该枚举数支持在非泛型集合上进行简单迭代。
喜欢的请关注、收藏、转发!