Terraria v1.4.4.9
Terraria source code documentation
All Classes Namespaces Files Functions Variables Enumerations Enumerator Properties Events Macros
StringConcat.cs
Go to the documentation of this file.
3
5
7public struct StringConcat
8{
9 private string _s1;
10
11 private string _s2;
12
13 private string _s3;
14
15 private string _s4;
16
17 private string _delimiter;
18
20
21 private int _idxStr;
22
23 public string? Delimiter
24 {
25 get
26 {
27 return _delimiter;
28 }
29 set
30 {
32 }
33 }
34
35 internal int Count => _idxStr;
36
37 public void Clear()
38 {
39 _idxStr = 0;
40 _delimiter = null;
41 }
42
43 public void Concat(string value)
44 {
45 if (_delimiter != null && _idxStr != 0)
46 {
48 }
50 }
51
52 public string GetResult()
53 {
54 return _idxStr switch
55 {
56 0 => string.Empty,
57 1 => _s1 ?? string.Empty,
58 2 => _s1 + _s2,
59 3 => _s1 + _s2 + _s3,
60 4 => _s1 + _s2 + _s3 + _s4,
61 _ => string.Concat(_strList.ToArray()),
62 };
63 }
64
65 internal void ConcatNoDelimiter(string s)
66 {
67 switch (_idxStr)
68 {
69 case 0:
70 _s1 = s;
71 break;
72 case 1:
73 _s2 = s;
74 break;
75 case 2:
76 _s3 = s;
77 break;
78 case 3:
79 _s4 = s;
80 break;
81 case 4:
82 {
83 int capacity = ((_strList == null) ? 8 : _strList.Count);
85 list.Add(_s1);
86 list.Add(_s2);
87 list.Add(_s3);
88 list.Add(_s4);
89 goto default;
90 }
91 default:
92 _strList.Add(s);
93 break;
94 }
95 _idxStr++;
96 }
97}
void Add(TKey key, TValue value)