0

score#UPDATED#これはおそらくかなり馬鹿げているように聞こえますが、私はこの問題に3日間立ち往生しています!私はC#を初めて使用します。

C#でWebサービスを利用しようとしています。次のコード行を使用して、JavaでWebサービスを利用することができました。

            List x = new ArrayList<Score>();

            x = topScores();

            System.out.println("x" + x.size());

            System.out.println("TOP SCORES:");
            for (Object o : x) {
                Score s1 = (Score) o;
                System.out.println(s1.getScore());

            }

スコアのリストを表示する必要がありますが、C#では理解できないようです。これが私がC#で立ち往生しているところです:

           List<object[]> list = new List<score[]>();

コレクションを宣言するさまざまなバリエーションを試しましたが、これを乗り越えることはできません。リストを反復処理する方法は知っていると思いますが、それを宣言することはできません。これが私のエラーメッセージです:

Cannot implicitly convert type `System.Collections.Generic.List<score>' to `System.Collections.Generic.List<object>'

宣言を次のように変更した場合:

List<score> list = new List<score>();
list = service.TopScores();

同じエラーが発生しますが、今回は次のようなメッセージが表示されます。

"Object[] TopScores()"

私のJavaスニペットに相当するC#は何ですか?私は本当に助けや提案をいただければ幸いです!お時間をいただきありがとうございます!

4

4 に答える 4

2

List <>クラスは、Genericsと呼ばれるコレクションのカテゴリにあり、厳密に型指定されたオブジェクトの配列を作成できます。。List部分は配列を意味するため、型を配列として宣言する必要もありません。の代わりにList<object[]>、あなたはただするべきですList<object>。リストのデータ型を変更することもできません。あなたがあなたのリストを作成したいなら、Scoreただするべきです。

List<Score> scores = new List<Score>();

次に、リストに次のようなスコアを入力できます

Score newScore = new Score();
scores.Add(newScore); 

または何でも

于 2013-03-25T21:47:59.087 に答える
1

あなたの助けをありがとう...私はそれを理解しました...

        LoginService service = new LoginService();
        List<score> listA = new List<score>();

        object[] array = listA.ToArray();
        array = service.TopScores();
于 2013-03-27T15:12:35.293 に答える
0

List<object>リストの要素がタイプであることをコードが常に認識しているため、を作成する必要はないようですScore。代わりにこれを行うことができます

List<Score> list = new List<Score>(); // Not really necessary because you assign it a different value in the next line.

list = topScores().Select(o => o.ToString()).ToList();

...

System.Console.WriteLine("x{0}", list.Length);

System.Console.WriteLine("TOP SCORES:");
foreach (var score in list) {
    System.Console.WriteLine(score.GetScore());
}

ただし、本当に最も簡単な方法でを作成List<object>したい場合は、次のようにします。List<string>

List<string> stringList = ...
List<object> objectList = stringList.ToList<object>();
于 2013-03-25T21:45:54.750 に答える
0

このリストを宣言するときは、同じタイプである必要があります。

List<score> list = new List<score>();

それから

    foreach(Score score in list)
    {
    //do something
    }
于 2013-03-25T21:49:07.167 に答える