web-dev-qa-db-fra.com

Format des chaînes dans la méthode Console.WriteLine

Je suis nouveau dans la programmation C #. Quelqu'un peut-il expliquer le code suivant:

Console.WriteLine( "{0}{1,10}", "Face", "Frequency" ); //Headings
Console.WriteLine( "{0,4}{1,10}",someval,anotherval);

Je comprends que cela imprime deux colonnes de valeurs avec les en-têtes donnés, et {0} fait référence au premier argument donné. Mais quelle est la signification des chaînes de format du formulaire {x,y}?

24
Joe

Il ajoute un rembourrage à gauche. La feuille de triche suivante est très utile pour se souvenir des différents modèles de formatage de chaîne:

. NET String.Format Cheat Sheet

Les valeurs positives ajoutent du rembourrage à gauche, négatives ajoutent du rembourrage à droite

 Exemple Génère 
 String.Format ("[{0, 10}]", "Foo"); [Oo Foo] 
 String.Format ("[{0, 5}]", "Foo"); [∙∙ Foo] 
 String.Format ("[{0, -5}]", "Foo"); [Foo ∙∙] 
 String.Format ("[{0, -10}]", "Foo"); [Foo ∙∙∙∙∙∙∙] 
56
Dirk Vollmar

Quand tu vois {x,y}, x représente l'index de l'argument et y l'alignement, comme spécifié ici . La syntaxe complète est la suivante:

{index[,alignment][:formatString]}
8
digEmAll

Il s'agit d'une valeur de remplissage ... si l'argument n'est pas la longueur spécifiée, il place des espaces.

Par exemple. si vous aviez {0,10} et que l'argument pour {0} était "Blah", la valeur réelle imprimée serait "Blah<SPACE><SPACE><SPACE><SPACE><SPACE><SPACE>"... Blah, avec 6 espaces supplémentaires pour constituer une chaîne de 10 longueurs

ps - je ne sais pas comment mettre les espaces réels dans ... besoin de chercher SO faq sans doute

3
davidsleeps