我刚刚在vb.net中创建了一个查询游戏服务器的程序。我正在使用为查询阀门服务器而创建的参考。无论如何,这是VB代码。它在VB中完美运行。
For Each player As aQueryLib.aQueryLib.Player In Server.Players
lstPlayers.AddItem(player.Name)
Next
我正在用C#创建一个新程序,但我不能在我的生活中复制上面的for循环。它基本上将服务器的播放器添加到列表中。
我将如何在C#2010中执行此循环?
答案 0 :(得分:7)
你可以尝试一些简单的事情:
foreach(var player in Server.Players)
{
lstPlayers.Add(player.Name);
}
或者如果你想使用LINQ:
var lstPlayers = Server.Players
.Select(player=>player.Name)
.ToList();
理论上是的,但我需要使用aQueryLib.aQueryLib.Player,否则我 无法拉出播放器的名称
如果您关注var
关键字,这只是语法糖。我们让编译器推断出名为player的变量的类型,而不需要指定哪个是这个变量的确切类型。有关var
的详细信息,请查看here。
答案 1 :(得分:1)
foreach(aQueryLib.aQueryLib.Player player in Server.Players)
{
lstPlayers.AddItem(player.Name);
}
答案 2 :(得分:0)
This link有点过时了(它没有所有最新的语言结构),但是当我需要弄清楚如何做相反的事情时我发现它很有用:表达我在VB.NET中知道的C#我大多不这样做。对于您的特定问题,它等同于VB.NET:
' Array or collection looping
Dim names As String() = {"Fred", "Sue", "Barney"}
For Each s As String In names
Console.WriteLine(s)
Next
使用C#:
// Array or collection looping
string[] names = {"Fred", "Sue", "Barney"};
foreach (string s in names)
Console.WriteLine(s);