[英]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.