明日Insus.NET有写过一篇《从字符串数组中把数字的元素找出来》http://www.cnblogs.com/insus/p/8001026.html
和它的延长篇《C#
yield关键词使用》http://www.cnblogs.com/insus/p/8003809.html
那是写一个项目来处理数字元素并搜集起来。
支出顺序,解决办法不是唯一的。相同的成效完毕,方法不止一个。上面Insus.NET再利用其余的章程来促成,算作对基础知识的加固与统制。
上面#21至#30行代码,可以改用yield方法,重返循环结果:
class Ak
{
private string[] _stringArray;
public Ak(string[] stringArray)
{
this._stringArray = stringArray;
}
public IEnumerable<Digit> Result()
{
// var result = new List<Digit>();
foreach (string s in _stringArray)
{
string pattern = "^[0-9]";
Regex regex = new Regex(pattern);
if (regex.IsMatch(s))
yield return new Digit(Convert.ToInt32(s));
}
// return result;
}
public void Output()
{
foreach (Digit d in Result())
{
Console.WriteLine(d.ToString());
}
}
}
Source Code
获取的结果与前一篇写自定义的主意举办求证的结果同样。
为了未来方便与有限支撑,你可以把正则验计的代码,写成一个情势,或者是扩展方法,在程序要求正则验证时,直接利用这些措施即可。达到面向对象的四个元素这一,封装:
public static bool Match(this string value, string pattern)
{
Regex regex = new Regex(pattern);
return regex.IsMatch(value);
}
Source Code