如果我有两个10的数组,比如,
int [] array = {2,10,3,4,8,9,7,5,6,1};
string [] arrayname = {"one", "two", "three", "four", "five", "six", "seven", "eight", "nine", "ten"};
我希望以desc顺序显示最高的3个数字,即“10,9,8”,但结果是“arrayname”,而不是“数组”。所以在富文本框中,我会看到
二六五。那么,我该如何编码呢?
答案 0 :(得分:6)
var result = arrayname.Select((m, index) => new
{
key = array[index],
value = m
})
.OrderByDescending(m => m.key)
.Select(m => m.value)
.Take(3);
var textBoxValue = string.Join(" ", result);
答案 1 :(得分:2)
使用Zip
int[] array = { 2, 10, 3, 4, 8, 9, 7, 5, 6, 1 };
string[] arrayname = { "one", "two", "three", "four", "five", "six", "seven", "eight", "nine", "ten" };
var dictionary = array.Zip(arrayname, (k, v) => new { Key = k, Value = v })
.ToDictionary(x => x.Key, x => x.Value);
var result=dictionary.OrderByDescending(m => m.Key)
.Select(m => m.Value)
.Take(3);
var textBoxValue = string.Join(" ", result);