例如我有如下二维数组:string[,] IntArray = new string[,] { { "北京", "90" }, { "上海", "100" }, { "天津", "80" } };我想根据城市后面的那个数字进行排序,大的放前面,
即整个效果: { "上海", "100" }  { "北京", "90" }  { "天津", "80" }
改怎么做?

解决方案 »

  1.   

    换种方式吧。用交错数组。static unsafe void Main(string[] args)
    {
        string[][] IntArray = new string[][] { new string[] { "北京", "90" }, new string[] { "上海", "100" }, new string[] { "天津", "80" } };
        IntArray = IntArray.OrderBy(t => t[1]).ToArray();
        foreach (string[] line in IntArray)
        {
            foreach (string item in line)
            {
                Console.Write(item);
            }
            Console.WriteLine();
        }
        Console.ReadKey();
    }
      

  2.   

    IntArray.OrderBy(t => t[1]).ToArray();这一句确定没有语法错误吗?
      

  3.   

    vs2008,.net 3.5框架下支持的Linq语法。你如果这样回帖,我估计你用的是vs2005.
      

  4.   

    vs2005,用这样的static void Main(string[] args)
    {
        string[][] IntArray = new string[][] { new string[] { "北京", "90" }, new string[] { "上海", "100" }, new string[] { "天津", "80" } };
        Array.Sort<string[]>(IntArray, (Comparison<string[]>)delegate(string[] x, string[] y) { return string.Compare(x[1], y[1]); });
        foreach (string[] line in IntArray)
        {
            foreach (string item in line)
            {
                Console.Write(item);
            }
            Console.WriteLine();
        }
        Console.ReadKey();
    }
      

  5.   

    用SortedList对象吧,自动排序的。不过你取是要倒序一下,因为是从小到大的