我有两个字符串,g1和g2。我随机决定是否使用g1或g2,就像是一个cointoss。我如何去做像g + coin()这样的事情;输出g1或g2,取决于coin()返回什么?
答案 0 :(得分:2)
如何:
return (coin() == 'heads' ? g1 : g2);
答案 1 :(得分:1)
string SelectOne(string g1, string g2)
{
return (new Random().NextDouble() > 0.5) ? g1 : g2;
}
答案 2 :(得分:0)
将两者存储在一个数组中:
string[] g = { "g1", "g2" };
然后,滚动一个随机数:
var random = new Random();
int index = random.Next(2);
最后,在该索引处获取字符串:
string choice = g[index];
答案 3 :(得分:0)
您无法在C#中使用本地变量名称(尽管您可以通过反射使用类型成员名称。)
您可以使用普通的if
:
if (coin() == 1)
result = g1;
else
result = g2;
或者您可以使用数组:
var gs = new[] { g1, g2 };
var result = gs[coin() - 1];
答案 4 :(得分:0)
使用此代码:
Random rd = new Random();
string strtouse = "g" + (rd.Next(2) + 1);
现在您可以使用以下代码段
string test = (string)this.GetType().GetField(strtouse).GetValue(this);
虽然这不是实现你想要的好方法。使用词典是一种更好的方法。