0

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# 等价物是什么?我真的很感激任何帮助或建议!感谢您的时间!

4

4 回答 4

2

List<> 类属于称为泛型的集合类别,它允许您创建强类型对象数组。. 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

看起来您不需要创建 aList<object>因为您的代码总是知道列表的元素是 type 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 回答