在c# -List中使用web服务
本文关键字:web 服务 -List | 更新日期: 2023-09-27 18:06:02
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<>类属于称为泛型的集合类别,它允许您创建强类型对象数组。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<score> list = new List<score>();
然后 foreach(Score score in list)
{
//do something
}
看起来您不需要创建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>();