1

给定一个

List<string> s=new List<string>{"a","b","c"}
and 
List<double> srank=new List<double>{2,3,1}

我希望ssrank降序排序,即排序后

s={"b","a","c"}

这样做最简单的方法是什么?</p>

4

2 回答 2

9

试试这个

   var sorted = s
      .Zip(srank, (x,y) => new { s = x, rank = y })
      .OrderByDescending(x => x.rank)
      .Select(x => x.s)
      .ToList();

阅读更多关于邮编

阅读更多关于OrderByDescending

编辑:

使用数组有一个非常简短的解决方案:如果是数组ssrank我们可以这样做:

Array.Sort(srank,s);
于 2013-09-24T11:49:54.410 回答
1

如果我是你,我会使用List<Tuple>aDictionary或创建一个新的class然后做

var dictionary = new Dictionary<string, double>
{
    { "a", 2 },
    { "b", 3 },
    { "c", 1 }
};

var result = dictionary.OrderByDescending(d => d.Value).Select(d => d.Key);
于 2013-09-24T12:03:57.427 回答