给定一个
List<string> s=new List<string>{"a","b","c"}
and
List<double> srank=new List<double>{2,3,1}
我希望s
按srank
降序排序,即排序后
s={"b","a","c"}
这样做最简单的方法是什么?</p>
给定一个
List<string> s=new List<string>{"a","b","c"}
and
List<double> srank=new List<double>{2,3,1}
我希望s
按srank
降序排序,即排序后
s={"b","a","c"}
这样做最简单的方法是什么?</p>
试试这个
var sorted = s
.Zip(srank, (x,y) => new { s = x, rank = y })
.OrderByDescending(x => x.rank)
.Select(x => x.s)
.ToList();
阅读更多关于邮编
阅读更多关于OrderByDescending
编辑:
使用数组有一个非常简短的解决方案:如果是数组s
,srank
我们可以这样做:
Array.Sort(srank,s);
如果我是你,我会使用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);