这是我的C#课程的额外学分。它很容易使用这种方法来反转阵列,但是在不使用它的情况下如何做到这一点非常困惑。任何提示或帮助将不胜感激。
namespace Reverse4Loop
{
class Program
{
static void Main()
{
int[] array = { 1, 2, 3, 4 };
foreach (int value in array)
{
Console.WriteLine(value);
}
Console.WriteLine();
Array.Reverse(array);
foreach (int value in array)
{
Console.WriteLine(value);
}
Console.WriteLine();
}
}
}
答案 0 :(得分:0)
这是使用foreach
和时间List<int>
的解决方案:
int[] array = { 1, 2, 3, 4 };
List<int> aux = new List<int>();
foreach (int i in array)
aux.Insert(0, i);
int[] reversed = aux.ToArray();
答案 1 :(得分:0)
提供额外的学分以帮助激励您学习。请尝试从这个答案中学习,不要只是复制/粘贴它。
LINQ的一个强大功能是它的排序能力:升序和降序。如果上升意味着向上(即向前),那么下降可以说是相反的。
使用LINQ,这是按升序写出数组的方法:
foreach (var value in array.OrderBy(a => a))
Console.WriteLine(value);
现在,在您将鼠标悬停在下面的答案上以了解如何反向操作之前,请在Visual Studio中使用intellisense,或者使用google LINQ降序并确定要替换的方法{{1 with,以降序写出数组:
<强>答案强>
foreach(array.OrderByDescending中的var值(a =&gt; a))
Console.WriteLine(值);
将鼠标悬停在上面的框中以显示解决方案
答案 2 :(得分:-1)
检查这是否适合你:)这是典型的方法。但是,在提供额外积分时还期待别的什么吗?
static void Main(string[] args)
{
int[] array = { 1, 2, 3, 4 };
int length = array.Count();
for (int i = 0; i < length / 2; i++)
{
int temp = array[i];
array[i] = array[length - 1 - i];
array[length - 1 - i] = temp;
}
foreach (int value in array)
{
Console.WriteLine(value);
}
}
答案 3 :(得分:-1)
namespace Reverse4Loop
{
class Program
{
static void Main()
{
int[] array = { 1, 2, 3, 4 };
foreach (int value in array)
{
Console.WriteLine(value);
}
Console.WriteLine();
int arrayLength = array.Length;
int[] array2 = new int[arrayLength];
for(int i = 0; i < array.Length; i++)
{
array2[arrayLength - (i + 1)] = array[i];
}
Array.Copy(array2, array, arrayLength);
}
}
希望这会对你有所帮助