名字1  487
名字2  312
名字3  587
 
我想把名字对应的数据排序(升序或降序都可)好,然后输出对应的数字对应的名字
该如何做

解决方案 »

  1.   

    把人名(在一个string[])在字符串的位置(indexof)得到,我的根本目的是想依据人名在字符中出现的位置进行升序排列
      

  2.   


    void Main()
    {
     List<test> list = new List<test>();
         list.Add(new test(" 名字1",487));
     list.Add(new test(" 名字2",312));
     list.Add(new test(" 名字3",587));     List<test>  listASC = list.OrderBy(l => l.value).ToList();
     List<test> listDESC = list.OrderByDescending(l => l.value).ToList();
     
     Console.WriteLine("升序:");
     foreach( test t in listASC)
     {
     Console.WriteLine(t.name+" "+t.value);
     }
      Console.WriteLine("降序:");
     foreach( test t in listDESC)
     {
     Console.WriteLine(t.name+" "+t.value);
     }
    }
     class test
    {
    public string name { get; set; }
    public int value { get; set; }
    public test(string _name, int _value)
    {
    name = _name;
    value = _value;
    }
    }
    // 建议使用LINQ
      

  3.   

    List<test>  listASC = list.OrderBy(l => l.value).ToList();
         List<test> listDESC = list.OrderByDescending(l => l.value).ToList();l => l.value是linq里的东西吗
      

  4.   

    10楼的方法不错,如果LZ还看不懂,可以尝试一下在test里实现Icomjparable<test>接口CompareTo()方法。具体方法如下
    class test:IComparable<test>
        {
            public string name { get; set; }
            public int value { get; set; }
            public test(string _name, int _value)
            {
                name = _name;
                value = _value;
            }        public int CompareTo(test obj)
            {
                return this.value.CompareTo(obj.value);
            }    }实现了这个方法以后就可以执行list的排序方法了。
                   List<test> list = new List<test> { 
                new test(" 名字1",487),
                new test(" 名字2",312),
                new test(" 名字3",587)
                };            list.Sort();    //test要实现compareTo方法才可以用这个方法。            foreach (test te in list)
                {
                    Console.WriteLine("{0},{1}", te.name, te.value);
                }
    结果
     名字2 312
     名字1 487
     名字3 587