C#基础知识记录一

static void Main(string[] args)

        {

            #region 合并运算符的使用(合并运算符??) 更多运算符请参考:https://msdn.microsoft.com/zh-cn/library/ms173224(v=vs.100).aspx

            int? x = null;

            //合并运算符的写法

            int? y = x ?? 0;

            //三元运算符的写法:

            y = x == null ? 0 : x;

            Console.WriteLine(y);

            #endregion

            #region 多维数组 参考MSDN:https://msdn.microsoft.com/zh-cn/library/2yd9wwz4(v=vs.80).aspx

            //二维数组(3行3列)

            int[,] array2 = new int[3, 3];

            int[,] arr2 = { { 1, 2 }, { 2, 3 }, { 4, 5 } };

            int[, ,] arr3 = { { { 1, 2, 3 } }, { { 2, 3, 4 } }, { { 4, 5, 6 } } };

            foreach (var item in arr3)

            {

                Console.Write(item);

            }

            //三维数组:

            int[, ,] array3 = new int[3, 3, 3];

            //锯齿数组(更灵活的方式):

            int[][] juarray = new int[3][];

            juarray[0] = new int[2] { 1, 2 };

            //嵌套循环锯齿数组:

            for (int i = 0; i < juarray.Length; i++)

            {

                if (juarray[i] != null)

                    for (int j = 0; j < juarray[i].Length; j++)

                    {

                        Console.WriteLine("值为:{0}", juarray[i][j]);

                    }

            }

            Console.WriteLine(juarray[0][0]);

            #endregion

            #region 字符串正则表达式

            //------基础----------------

            /* 元字符:  .:表示匹配除换行以外的任意字符  \b:匹配单词开始或者结束  \d:匹配数字  \s:匹配任意的空白字符

             *  ^ :匹配字符串的开始   $ :匹配字符串的结束

             *  限定符:  *:重复0次或者多次  +:重复一次或者多次  ? :重复0次或者1次  {n}:重复n次   {n,} :重复n次或者更多次

             *    {n,m} :重复n到m次

             *   更多关于正则表达式可以参考:   https://msdn.microsoft.com/zh-cn/library/system.text.regularexpressions.regex.aspx

             *   或者是:http://www.cnblogs.com/youring2/archive/2009/11/07/1597786.html  (写得很清楚)

             */

            Regex reg = new Regex("\\d");

            Console.WriteLine(reg.IsMatch("12321"));

            #endregion

            #region 集合 List,Queue,Stack,Dictionary ,LinkedList (链表)

            //举例:

            List<int> list = new List<int> { 1, 2, 3, 4, 5, 6, 7 };

            list.ForEach((a) =>

            {

                Console.WriteLine(a);

            });

            //或者:

            list.ForEach(delegate(int num)

            {

                Console.WriteLine(num);

            });

            //队列:

            Queue<int> queue = new Queue<int>();

            //向队列中添加元素:

            queue.Enqueue(1);  //从尾部 添加数据

            int q = queue.Dequeue();  // 从头部添加

            Console.WriteLine("出队:{0}", q);

            //栈 Stack:

            Stack stack = new Stack();

            stack.Push(1); //添加

            Console.WriteLine("返回栈顶元素:{0}", stack.Peek());//返回栈顶元素

            /* 其它:并发集合...

                以下几个为线程安全的集合:IProducerConsumerCollection<T>

                ,ConcurrentQueue<T>......BlockingCollection<T>

             */

            #endregion

            #region Linq、动态语言扩展、内存管理与指针

            //linq 并行运算AsParallel

            var sum = (from f in list.AsParallel() where f < 3 select f);

            //动态语言:dynamic

            #endregion

        }

  

//未完待续...

04-28 05:30