C# 使用变量在两个列表之间切换
C# Using Variable To Switch Between Two Lists
这可能是个愚蠢的问题,但这是我的场景:我有两个列表,一个包含曲棍球运动员对象,另一个包含棒球运动员对象。
public static List<BaseballPlayer> Baseball List = new List<BaseballPlayer>();
public static List<HockeyPlayer> Hockey List = new List<HockeyPlayer>();
如果按下按钮,我有一个屏幕会在玩家对象上绘制更多细节(下面是绘制数百条线的示例):
GUI.Label(new Rect(x, y, 130, 32),Lists.BaseballPlayer[i].accessPlayerName);
但是,有没有办法动态控制使用哪个列表名称。所以像:
string one;
然后让绘制调用执行如下操作:
GUI.Label(new Rect(x, y, 130, 32),Lists.one[i].accessPlayerName);
其中字符串 1 可以定义为 "BaseballPlayers" 或 "HockeyPlayers"。
我不想复制两个屏幕,一个显示 BaseballPlayer 列表,另一个显示 HockeyPlayer 列表。如果有一种方法可以动态插入列表名称,那就太好了。
谢谢!
好吧,一个简单的 if 内联就足够了。
假设您使用布尔值来确定使用哪个列表:
bool useHockey = true; //control this variable anyway you like, a property, a function, anything you want
然后你可以这样做:
GUI.Label(new Rect(x, y, 130, 32), (useHockey ? Lists.Hockey : Lists.Baseball)[i].accessPlayerName);
理想情况是使用继承。由于 HockeyPlayer
和 BaseballPlayer
都是 Player
的一些共同属性,因此最好创建一个基础 class 并将共同属性放在那里。
之后打印功能就简单多了:
public class Player
{
public string Name { get; set; }
}
public class BaseballPlayer : Player
{
//Properties specific to baseball player
}
public class HockeyPlayer : Player
{
//Properties specific to hockey player
}
public void PrintPlayers(List<Player> playerList)
{
for(int i = 0; i < playerList.Count; i++)
{
GUI.Label(new Rect(x, y, 130, 32),playerList[i].Name);
}
}
PrintPlayer(Lists.BaseballPlayers);
PrintPlayer(Lists.HockeyPlayers);
这可能是个愚蠢的问题,但这是我的场景:我有两个列表,一个包含曲棍球运动员对象,另一个包含棒球运动员对象。
public static List<BaseballPlayer> Baseball List = new List<BaseballPlayer>();
public static List<HockeyPlayer> Hockey List = new List<HockeyPlayer>();
如果按下按钮,我有一个屏幕会在玩家对象上绘制更多细节(下面是绘制数百条线的示例):
GUI.Label(new Rect(x, y, 130, 32),Lists.BaseballPlayer[i].accessPlayerName);
但是,有没有办法动态控制使用哪个列表名称。所以像:
string one;
然后让绘制调用执行如下操作:
GUI.Label(new Rect(x, y, 130, 32),Lists.one[i].accessPlayerName);
其中字符串 1 可以定义为 "BaseballPlayers" 或 "HockeyPlayers"。
我不想复制两个屏幕,一个显示 BaseballPlayer 列表,另一个显示 HockeyPlayer 列表。如果有一种方法可以动态插入列表名称,那就太好了。
谢谢!
好吧,一个简单的 if 内联就足够了。
假设您使用布尔值来确定使用哪个列表:
bool useHockey = true; //control this variable anyway you like, a property, a function, anything you want
然后你可以这样做:
GUI.Label(new Rect(x, y, 130, 32), (useHockey ? Lists.Hockey : Lists.Baseball)[i].accessPlayerName);
理想情况是使用继承。由于 HockeyPlayer
和 BaseballPlayer
都是 Player
的一些共同属性,因此最好创建一个基础 class 并将共同属性放在那里。
之后打印功能就简单多了:
public class Player
{
public string Name { get; set; }
}
public class BaseballPlayer : Player
{
//Properties specific to baseball player
}
public class HockeyPlayer : Player
{
//Properties specific to hockey player
}
public void PrintPlayers(List<Player> playerList)
{
for(int i = 0; i < playerList.Count; i++)
{
GUI.Label(new Rect(x, y, 130, 32),playerList[i].Name);
}
}
PrintPlayer(Lists.BaseballPlayers);
PrintPlayer(Lists.HockeyPlayers);