Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何按降序显示最高的3个数组元素?_C#_Arrays_Visual Studio 2010_Sorting - Fatal编程技术网

C# 如何按降序显示最高的3个数组元素?

C# 如何按降序显示最高的3个数组元素?,c#,arrays,visual-studio-2010,sorting,C#,Arrays,Visual Studio 2010,Sorting,如果我有两个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"}; 我想显示最高的3个数字,按desc顺序是10,9,8,但结果是arrayname,而不是array。在rich文本框中,我会看到 二六五 那么,我该如何编码呢?另一个使用Z

如果我有两个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"};
我想显示最高的3个数字,按desc顺序是10,9,8,但结果是arrayname,而不是array。在rich文本框中,我会看到

二六五

那么,我该如何编码呢?

另一个使用Zip的解决方案

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);

可能这里也有问题,因为我得到了2,6,five@Steve期望的结果是什么?所以在rich文本框中,我将看到二六五。或者你的意思是我应该去掉逗号?不,现在真的很困惑。你正在打印arrayname中三个最高数字的索引,这可能是对的,但这意味着什么?我想显示最高的3个数字,按描述顺序是10、9、8?@Steve嗯,如果你读了整个短语,就相当清楚了,不是吗?从数组中按降序取最高的3个数字,并在arrayname中显示相应的元素…嘿!感谢您的回答,但由于我不太了解zip,就像它所做的一样,imma使用另一个ans:@MarcellaTay: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);