使用string.format()函数或LINQ分隔字符串的最佳方法是什么?

Rza*_*sar 5 c# linq string

有没有办法使用函数或LINQ 更改" ABCDEFGHIJKLMNOP"到" ABCD-EFGH-IJKL-MNOP" string.format()
我正在使用这个声明

Out= String.Format("{0}-{1}", String.Format("{0}-{1}-{2}", In.Substring(0, 4), In.Substring(4, 4), In.Substring(8, 4)), In.Substring(12, 4));  
Run Code Online (Sandbox Code Playgroud)

有没有更好更清晰的方法来实现这一目标?

Ode*_*ded 10

可以使用string.Format,但你仍然需要SubString用来获得不同的部分.

您应该只使用Insert:

string result = myString.Insert(12, "-").Insert(8, "-").Insert(4, "-");
Run Code Online (Sandbox Code Playgroud)

LINQ对于这样的事情来说太过分了.


Øyv*_*hen 9

没有LINQ或string.format这很容易,所以我建议使用这段代码:

string s = "ABCDEFGHIJKLMNOP";
for( int i = 4; i < s.Length; i += 5){
  s = s.Insert(i, "-");
}
Run Code Online (Sandbox Code Playgroud)

这将在每4个字符后插入一个破折号(我认为这是你想要的).