2017-01-17 127 views
-2

我可以访问一个名为Storage的字符串变量。我想将一组字符串与其他变量一起保存到Storage变量中。这可能将一个数组变量保存到一个字符串?如果是我如何从数组中获取值?请参阅下面的代码。将字符串数组保存到字符串

// This Storage variable is just for code functionality. I do not create it. 
string Storage; // See above^ 

string Apple = "Red"; 
string Bannana = "Yellow"; 

Queue<string> myQ = new Queue<string>(); 
myQ.Enqueue("zero"); 
myQ.Enqueue("one"); 
myQ.Enqueue("two"); 
myQ.Enqueue("three"); 

string[] myQ_Array = myQ.ToArray(); 

Storage = Apple + ";" + Bannana + ";" + myQ_Array[0] + ";" + myQ_Array; 
var mySplitStorage = Storage.Split(';'); 
Console.WriteLine("mySplitStorage[0] = " + mySplitStorage[0]); 
Console.WriteLine("mySplitStorage[1] = " + mySplitStorage[1]); 
Console.WriteLine("mySplitStorage[2] = " + mySplitStorage[2]);//<--This works 
Console.WriteLine("mySplitStorage[3] = " + mySplitStorage[3]);//<--Cant get this to work 

Console.Read(); 

// This is the output 
//mySplitStorage[0] = Red 
//mySplitStorage[1] = Yellow 
//mySplitStorage[2] = zero 
//mySplitStorage[3] = System.String[] <--- How do i get the values out of the array? 
+0

'VAR第三= mySplitStorage [3];'然后'第三[0]'或'mySplitStorage [3] [0]' –

+1

是否有你创建一个队列然后将其转换为数组的原因,只是为了不再使用队列?除非它稍后在代码中使用,并且您只是不包含该部分,为什么不直接创建队列作为数组呢? – MattD

回答

3

您可以将字符串存储为一部分数组的单个元素一个字符串。所以,如果你想存储数组,你需要将它转换为一个字符串。 myQ_Array [0]的工作原理是因为您要让它在第一个位置抓取字符串,即“零”。如果你想显示'one',那么你会做myQ_Array [1],因为'one'在第二位。请记住,数组是零索引...所以当我说第一个位置,那是在索引零,当我说第二个位置,那是在索引一。只是把myQ_Array不起作用,因为它是引用对象,而不是字符串值。总之,如果你想整个数组转换成一个字符串,你可以这样做:

string.Join(",", myQ_Array); 

这将创建一个基于阵列的逗号分隔字符串。

使用你的代码,你可以这样做:

Storage = Apple + ";" + Bannana + ";" + myQ_Array[0] + ";" + string.Join(",", myQ_Array); 
+0

谢谢Skyrider我刚刚得到了使用Join命令工作的代码。我将整个数组转换为字符串,然后再次分割。 – Hester

0

String.JoinString.Split是一个获奖团队。 Split通过分隔符将字符串拆分为数组。 Join通过分隔符将数组的元素连接在一起。

试试这个看逗号分隔的数组的值的列表:

Console.WriteLine("myQ_Array = " + String.Join(",", myQ_Array)); 

您也可以访问

Console.WriteLine("myQ_Array[0] = " + myQ_Array[0]);