也许是一个菜鸟问题,但我需要更改List内的字符串值。
public string TopU1_N;
private List<string> TopScores;
void Start()
{
TopScores = new List<string>();
TopScores.Add(TopU1_N);
TopScores.Add(TopU2_N);
TopScores[0]="100";
TopScores[1]="200";
print("Top1: " + TopU1_N);
print("Top2: " + TopU2_N);
}
我需要打印这样的结果:100,200。 这是为了统一而写的
答案 0 :(得分:2)
在.NET中,字符串是不可变类型。这意味着即使您更改TopScores[0]
的值,也不会影响您之前分配的TopU1_N
的值。
为了实现这一目标,您需要使用List<SomeType>
。
例如:
public class SomeType
{
public string Value { get; set; }
}
然后:
SomeType myType = new SomeType();
myType.Value = "OLD VALUE";
List<SomeType> list = new List<SomeType>();
list.Add(myType);
list[0].Value = "NEW VALUE";
Console.WriteLine(myType.Value); // prints NEW VALUE
答案 1 :(得分:-1)
您需要使用不安全的代码来执行您想要的操作。 我认为这可能有用。
public string TopU1_N;
public string TopU2_N;
private object TopScores;
void Start()
{
unsafe
{
TopScores = new List<string *>();
TopScores.Add(&TopU1_N);
TopScores.Add(&TopU2_N);
*(TopScores[0])="100";
*(TopScores[1])="200";
print("Top1: " + TopU1_N);
print("Top2: " + TopU2_N);
}
}
请尝试编译。