将for循环从vb转换为c#

时间:2015-11-03 23:10:56

标签: c#

我刚刚在vb.net中创建了一个查询游戏服务器的程序。我正在使用为查询阀门服务器而创建的参考。无论如何,这是VB代码。它在VB中完美运行。

For Each player As aQueryLib.aQueryLib.Player In Server.Players
    lstPlayers.AddItem(player.Name)
Next

我正在用C#创建一个新程序,但我不能在我的生活中复制上面的for循环。它基本上将服务器的播放器添加到列表中。

我将如何在C#2010中执行此循环?

3 个答案:

答案 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);