1 Imports System.Runtime.CompilerServices
2 Imports System.Text
3 Imports Microsoft.VisualBasic.ComponentModel.DataSourceModel
4 Imports Microsoft.VisualBasic.Linq
5
6 ''' <summary>
7 ''' <see cref="StringBuilder"/> helpers
8 ''' </summary>
9 Public Module StringBuilders
10
11     ''' <summary>
12     ''' 批量进行替换操作
13     ''' </summary>
14     ''' <param name="sb"></param>
15     ''' <param name="replacements"></param>
16     ''' <returns></returns>
17     <Extension>
18     Public Function Replace(sb As StringBuilder, ParamArray replacements As NamedValue(Of String)()) As StringBuilder
19         For Each tuple As NamedValue(Of StringIn replacements.SafeQuery
20             Call sb.Replace(tuple.Name, tuple.Value)
21         Next
22
23         Return sb
24     End Function
25
26     ''' <summary>
27     ''' 适用于更加复杂的结果值的产生的链式替换
28     ''' </summary>
29     ''' <param name="sb"></param>
30     ''' <param name="find$"></param>
31     ''' <param name="value"></param>
32     ''' <returns></returns>
33     <MethodImpl(MethodImplOptions.AggressiveInlining)>
34     <Extension>
35     Public Function Replace(sb As StringBuilder, find$, value As Func(Of String)) As StringBuilder
36         Return sb.Replace(find, value())
37     End Function
38 End Module