string.Format("{0:s}{1}{2:+2;-2}",Name[idx], direction, step[idx]);
C#文法ですが、上記の{2:+2;-2}の部分が分かりません。。。。
どこから持ってきたものでしょうか
step[idx] の型に関連付けられた書式プロバイダーによってかわります。
https://docs.microsoft.com/ja-jp/dotnet/standard/base-types/how-to-define-and-use-custom-numeric-format-providers