我是学习如何制作10或20或25号码表的新手。我正在做10号码表。例如,我有4个数字表1,2,3,4,并希望在最后写它像4,3,2,1 - 有人可以告诉我该怎么做?
我的节目
static void Main(string[] args)
{
int[] p = new int[10] { 2, 9, 13, 3, 50, -8, -30, 0, 1, 4 };
int vsota = 0;
float povprecje = 0;
for (int i = 0; i < p.Length; i++)
{
Console.WriteLine("p [{0}] = {1,3}", i, p[i]);
vsota += p[i];
}
povprecje = (float)vsota/p.Length;
Console.WriteLine();
Console.WriteLine("Vsota = {0}!", vsota);
Console.WriteLine("Povprecje = {0}!", povprecje);
Console.ReadKey(true);
}
答案 0 :(得分:3)
您可以使用Linq's OrderBy和OrderByDescending方法对集合进行排序。在您的示例中:
int[] p = new int[10] { 2, 9, 13, 3, 50, -8, -30, 0, 1, 4 };
p = p.OrderByDescending( x => x ).ToArray();
编辑:将表达式添加到OrderByDescending方法中。此外,Linq适用于3.5及更高版本的框架,需要引用System.Linq命名空间。
答案 1 :(得分:0)
如果您使用的是List,则可以使用:
using System;
using System.Collections.Generic;
public class Example
{
public static void Main()
{
List<int> table = new List<int>();
table.Add(1);
table.Add(2);
table.Add(3);
table.Add(4);
foreach(int item in table)
{
Console.WriteLine(item);
}
table.Reverse();
Console.WriteLine();
foreach(int item in table)
{
Console.WriteLine(item);
}
}
}
答案 2 :(得分:0)
我认为你的意思是想要反转数组。所以如果你有这个数组:
int[] a = new int[] { 0, 1, 2, 3 };
您想要反转元素,使它们为{ 3, 2, 1, 0 }
。
关键是你要交换元素。例如,如果您要写:
// swap first and last elements
int temp = a[0];
a[0] = a[a.Length - 1];
a[a.Length - 1] = temp;
然后你的数组将是{ 3, 1, 2, 0 }
。
然后,想法是交换a[0]
和a[length-1]
。然后交换a[1]
和a[length-2]
等,直到您将每个项目与其对应项目交换为止。
您可以通过一个循环完成此操作。
顺便说一句,Reverse
方法仅适用于List
类型。对于数组,Reverse
方法实际上是LINQ扩展方法,您需要创建一个新数组。例如:
int[] b = a.Reverse.ToArray();
答案 3 :(得分:0)
要对一维数组进行排序,可以调用Array.Sort()和/或Array.Reverse()方法。更新您的示例,您可以执行以下操作:
int[] p = new int[10] { 2, 9, 13, 3, 50, -8, -30, 0, 1, 4 };
int vsota = 0;
float povprecje = 0;
for (int i = 0; i < p.Length; i++)
{
Console.WriteLine("p [{0}] = {1,3}", i, p[i]);
vsota += p[i];
}
povprecje = (float)vsota/p.Length;
Console.WriteLine();
Console.WriteLine("Vsota = {0}!", vsota);
Console.WriteLine("Povprecje = {0}!", povprecje);
Console.ReadKey(true);
// Sort (low to high) the int[] by calling the Array.Sort() method
Array.Sort(p);
foreach(int i in p)
{
Console.WriteLine(i);
}
// Sort (high to low) the int[] by calling the Array.Reverse() method
Array.Reverse(p);
foreach(int i in p)
{
Console.WriteLine(i);
}
答案 4 :(得分:0)
要反转数组:
p = p.Reverse().ToArray();
答案 5 :(得分:0)
这是对@Metro Smurf的LINQ解决方案的更新:
int[] p = new int[10] { 2, 9, 13, 3, 50, -8, -30, 0, 1, 4 };
p = p.OrderByDescending(x => x).ToArray();