从字符串数组中摸索数字的元素

明天Insus.NET有写过一篇《从字符串数组中把数字的元素找出来http://www.cnblogs.com/insus/p/8001026.html 

前些天Insus.NET有写过一篇《从字符串数组中把数字的要素找出来http://www.cnblogs.com/insus/p/8001026.html 

和它的拉开篇《C#
yield关键词使用
http://www.cnblogs.com/insus/p/8003809.html

和它的拉开篇《C#
yield关键词使用
http://www.cnblogs.com/insus/p/8003809.html

那是写一个档次来处理数字元素并募集起来。

那是写一个类型来拍卖数字元素并搜集起来。

支出顺序,解决格局不是唯一的。相同的效率已毕,方法不止一个。上面Insus.NET再使用此外的办法来贯彻,算作对基础知识的加固与明白。

开发顺序,解决方法不是唯一的。相同的功效完毕,方法不止一个。上面Insus.NET再使用其它的艺术来贯彻,算作对基础知识的加固与控制。

参照上边代码:
图片 1

参考下边代码:
图片 2

 

 

上面#21至#30行代码,可以改用yield方法,重临循环结果:
图片 3

上面#21至#30行代码,能够改用yield方法,重临循环结果:
图片 4

 

 

图片 5图片 6

图片 7图片 8

 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());
            }
        }
    }
 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

Source Code

 

 

运转结果:
图片 9

运行结果:
图片 10

 

 

赢得的结果与前一篇写自定义的办法举办求证的结果一致。

得到的结果与前一篇写自定义的措施开展认证的结果一律。

为了未来有利与保安,你可以把正则验计的代码,写成一个艺术,或者是伸张方法,在先后须求正则验证时,直接动用那么些主意即可。达到面向对象的七个因素这一,封装:

为了未来方便与有限支持,你可以把正则验计的代码,写成一个办法,或者是扩充方法,在程序须要正则验证时,直接运用那几个措施即可。达到面向对象的几个要素这一,封装:

应用正则来拍卖,创造一个扩展方法:
图片 11

运用正则来拍卖,成立一个恢弘方法:
图片 12

 

 

图片 13图片 14

图片 15图片 16

public static bool Match(this string value, string pattern)
        {
            Regex regex = new Regex(pattern);
            return regex.IsMatch(value);
        }
public static bool Match(this string value, string pattern)
        {
            Regex regex = new Regex(pattern);
            return regex.IsMatch(value);
        }

Source Code

Source Code

下一场,程序代码最后得以变成那样子:
图片 17

然后,程序代码最终得以成为那样子:
图片 18