关于lamda表达式和linq的有关问题

关于lamda表达式和linq的问题
大家好,碰到一个很奇怪的问题。我测试list的自定义排序。想解决字符串按数字排序的问题。
写了一些测试代码,发现lamda表达式没起作用,看起来很简单,不知道问题在哪里?


List<string> list = new List<string>();
            list.Add("1");
            list.Add("2");
            list.Add("10");

            //默认排序
            Console.WriteLine("默认排序");
            list.Sort();
            foreach (string v in list)
            {
                Console.WriteLine(v);
            }

            //用Lamda表达式实现转换int后排序
            Console.WriteLine("用Lamda表达式实现排序");
            list.Add("3");
            //list.OrderBy<string, int>(s => int.Parse(s));   //原始的写法
            list.OrderBy(s => int.Parse(s));    //简化的写法
            foreach (string v in list)
            {
                Console.WriteLine(v);
            }

            //用linq实现转换int后排序
            Console.WriteLine("用linq实现排序");
            list.Add("4");
            var query = from l in list
                        orderby int.Parse(l)
                        select l;
            foreach (string v in query)
            {
                Console.WriteLine(v);
            }


执行的结果是,linq有效,lamda没起作用,输出结果如下:
默认排序
1
10
2
用Lamda表达式实现排序
1
10
2
3
用linq实现排序
1
2
3
4
10

请高手指点。

------解决思路----------------------
list = list.OrderBy(s => int.Parse(s)).ToList();

------解决思路----------------------
list.OrderBy(s => int.Parse(s)); 
你排序了,但list没排序
你应该要list = list.OrderBy(s => int.Parse(s)).ToList()
List.Sort才会是内部排序