簡體   English   中英

在C#中使用Web服務-List

[英]Consuming web service in C# -List

score#UPDATED#這聽起來似乎很愚蠢,但是我已經在這個問題上停留了三天了! 我是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#等效項是什么? 我真的很感謝任何幫助或建議! 感謝您的時間!

List <>類位於稱為Generics的集合的類別中,該類使您可以創建強類型對象的數組。 List部分暗含一個數組,因此您也不需要將類型聲明為數組。 代替List<object[]> ,您應該只執行List<object> 您也不能更改列表的數據類型。 如果要創建Score列表,則應該這樣做。

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

那么您可以用諸如

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

管他呢

謝謝您的幫助...我知道了...

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

        object[] array = listA.ToArray();
        array = service.TopScores();

看起來您不需要創建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<string>創建List<object> ,最簡單的方法是:

List<string> stringList = ...
List<object> objectList = stringList.ToList<object>();

聲明此列表時,您需要具有相同的類型。

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

然后

    foreach(Score score in list)
    {
    //do something
    }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM