2016-04-30 49 views
-1
string userName = Console.ReadLine(); 


string[,] stats = new string[5,5]; 
stats[1,0] = "Name: "; 
stats[1,1] = "userName"; 

我知道這可能不是做事的最有效的方式,但林新,只是用C#玩弄。我將如何顯示這個?每次我嘗試它時,總是將它們顯示在彼此之上。如何在網格中顯示2d數組?

+0

你是什麼意思的「顯示」?你的意思是將它們打印到控制檯上?你試過了什麼代碼? – erisco

+0

請更具體。 – ViVi

回答

2

隨着一個循環:

for (var i = 0; i < stats.GetLength(0); i++) { 
    for (var j = 0; j < stats.GetLength(1); j++) 
    Console.Write("{0} ", stats[i, j]); 
    Console.WriteLine(); 
} 

這是一個基於LINQ的解決方案:

string[,] stats = new string[3,3] { 
    { "Name:", "userName", "some stat" }, 
    { "More stat:", "more", "more" }, 
    { "Even more:", "hey", "great" } 
}; 
var lines = stats.Cast<string>() 
       .Select((v, i) => new { Idx = i, Val = v }) 
       .GroupBy(x => x.Idx/stats.GetLength(1)) 
       .Select(x => string.Join(" ", x.Select(y => y.Val))); 
Console.WriteLine(string.Join(Environment.NewLine, lines)); 

打印

名稱:用戶名的一些統計

更多的數據:更多更多

甚至更​​多:嘿偉大