2017-05-16 1 views
-3

J'ai une application de console simple avec la ligne de codes suivante.C# Impression des valeurs de chaîne avec des longueurs au bas de chaque valeur?

string[] daysOfWeek = { "Monday", "Tuesday" }; 

IEnumerable<int> lengths = daysOfWeek.Select(x => x.Length); 
//Each Day will be print 

foreach (var eachDay in daysOfWeek) 
{ 
    Console.WriteLine(eachDay); 
} 
//Lenth of each day 

foreach (var eachDayLength in lengths) 
{ 
    Console.WriteLine(eachDayLength); 
} 

Affichage de sortie actuel, d'abord toutes les valeurs, puis les longueurs.

Est-il possible que la sortie soit comme ça?

//expected output 
//Monday 
//6 
//Tuesday 
//7 

Répondre

1

Vous imprimez simplement la longueur dans le premier foreach. Comme ceci:

string[] daysOfWeek = { "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday" }; 

     //Each Day will be print 

     foreach (var eachDay in daysOfWeek) 
     { 
      Console.WriteLine(eachDay); 
      Console.WriteLine(eachDay.Length.ToString()); 
     } 
+2

FYI vous n'avez pas besoin d'appeler 'ToString();'. 'Console.WriteLine()' a une surcharge ['int'] (https://msdn.microsoft.com/fr-fr/library/70x4wcx1 (v = vs.110) .aspx). – sab669

4

Il suffit de faire ceci:

string[] daysOfWeek = { "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday" }; 

foreach (var day in daysOfWeek) 
{ 
    Console.WriteLine(day); 
    Console.WriteLine(day.Length); 
} 
0

Juste pour le plaisir.

string[] daysOfWeek = { "Monday", "Tuesday" }; 
IEnumerable<int> lengths = daysOfWeek.Select(x => x.Length); 

int y = Console.CursorTop; 
foreach (var eachDay in daysOfWeek) 
{ 
    Console.WriteLine(eachDay); 
    Console.WriteLine(); // placeholder for length 
} 

Console.SetCursorPosition(0, y); 
foreach (var eachDayLength in lengths) 
{ 
    Console.WriteLine(); // skip day 
    Console.WriteLine(eachDayLength); 
}