2016-01-18 41 views
1

我有字符串值740D1E11625C89019E61D0CC我想在每個計數5的長度後在字符串中插入「 - 」。修改字符串並添加新字符串

我使用

ReplaceAt(serial, 5, 0, "-"); 


public static string ReplaceAt(string str, int index, int length, string replace) 
     { 
      return str.Remove(index, Math.Min(length, str.Length - index)) 
        .Insert(index, replace); 
     } 

結果

740D1-E11625C89019E61D0CC

應該

740D1-E1162-5C890-19E61-D0CC

這是修改字符串的正確方法嗎?

回答

1

您可以從MoreLINQ使用Batch。它也有Nuget package

var s = "740D1E11625C89019E61D0CC"; 
var array = s.Batch(5, seq => new string(seq.ToArray())); 
Console.WriteLine(string.Join("-", array)); 

打印

740D1-E1162-5C890-19E61-D0CC 
+0

您可能要添加的重複的目標這個問題的答案。非常好的方法來解決這個問題。 –

+0

@PatrickHofman我認爲這個解決方案_might_對於重複問題不是一個好的答案,因爲它最後需要''',但'Batch'不提供這個。 'string.Join(「 - 」,array)+「 - 」'會解決這個問題,但我認爲這太過自定義。 –

+0

好的,那麼+1會在這裏做:) –