最近C#に入りましたが、私はStacksについて少し勉強しようとしていました。スタックをソートしようとしましたが、最初に配列に変換していましたが、奇妙なエラーがありました。ここでC#スタックを配列に変換してソートする
は私のコードです:
using System;
using System.Collections.Generic;
class Program
{
public static Stack<int> numbers = new Stack<int>();
static void Main(string[] args)
{
string[] input = Console.ReadLine().Split(' ');
int n = int.Parse(input[0]);
int s = int.Parse(input[1]);
int x = int.Parse(input[2]);
input = Console.ReadLine().Split(' ');
for (int i = 0; i < n; i++)
{
numbers.Push(int.Parse(input[i]));
}
for (int i = 0; i < s; i++)
{
numbers.Pop();
}
if (numbers.Count == 0)
Console.WriteLine(0);
else if (numbers.Contains(x))
Console.WriteLine("true");
else
Console.WriteLine(Array.Sort(numbers.ToArray()));
}
}
私の問題は、私のコードの最後の他の部分(最後の行)である:
引数1:BOOL」に「無効」から変換することはできません「
なぜこれが起こっているときArray.Sort()
私は、思っていた新しいARRAを返すべき、パラメータとして配列を必要とし、私はnumber.ToArray()
を渡しますy 番号スタックのうちy。
スタックをソートしないでください。スタック全体の目的を損なう。 –
'void'メソッドは何も返しません。そのため、メソッドとして引数として使用することはできません。次の問題:配列全体を 'Console.WriteLine'することはできません。それを列挙するか、 'String.Join("、 "、numbers)'を使う必要があります。 –
'Array.Sort'は何も返しません。配列をインプレースでソートします。 –