рдХрд▓реНрдкрдирд╛ рдХреАрдЬрд┐рдП рдХрд┐ рд╣рдореЗрдВ .net рдореЗрдВ рддрд╛рд░ рдХреЗ рд╕рд╛рде рдХреБрдЫ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдХреБрдЫ рдмрд╣реБрдд рдЬрдЯрд┐рд▓ рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдмрд┐рд▓реНрдХреБрд▓ рд╕рд░рд▓ рдирд╣реАрдВ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЙрдЪрд┐рдд рд╕реНрд╡рд░реВрдкрдг рдХреЗ рд▓рд┐рдП, рдкрд╛рда рдореЗрдВ рдЕрд▓реНрдкрд╡рд┐рд░рд╛рдо рдХреЗ рдмрд╛рдж рд░рд┐рдХреНрдд рд╕реНрдерд╛рди рдбрд╛рд▓реЗрдВред .Net рдмреЙрдХреНрд╕ рд╕реЗ рдХреНрдпрд╛ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ?
рдХреБрдЫ рдЗрд╕ рддрд░рд╣:
string str = "..."; str.Replace(",", ", ");
рд░реБрдХреЛ, рд▓реЗрдХрд┐рди рд╣рдо рд░рд┐рдХреНрдд рд╕реНрдерд╛рди
рд░рдЦрдирд╛ рдЪрд╛рд╣рддреЗ рдереЗ, рдЕрд▓реНрдкрд╡рд┐рд░рд╛рдо рдХреА
рдЬрдЧрд╣ рдирд╣реАрдВ! ...
рдареАрдХ рд╣реИ, рдЪрд▓реЛ рдЖрдЧреЗ рдмрдврд╝рддреЗ рд╣реИрдВред
рдЪрд▓реЛ рд╕реЗрдВрд╕рд░рд╢рд┐рдк рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВред рд╣рдо рдЕрдкрдиреЗ рдЧреНрд░рдВрдереЛрдВ рдореЗрдВ, "рднрд╛рд▓реВ" рд╢рдмреНрдж рдХреА рдЕрдиреБрдорддрд┐ рдирд╣реАрдВ рджреЗрдВрдЧреЗред рддреЛ рдпрд╣ рдЖрд╕рд╛рди рд╣реИред рд╣рдо рдкреНрд░рддреНрдпреЗрдХ "рднрд╛рд▓реВ" рдХреЛ рдПрдХ рджреАрд░реНрдШрд╡реГрддреНрдд рдХреЗ рд╕рд╛рде рдмрджрд▓ рджреЗрдВрдЧреЗред
рд╣рд╛рдБ, рд╡рд┐рдХрд▓реНрдкред рдЗрд╕рд▓рд┐рдП рд╕рдорд╛рди рд░рд┐рдкреНрд▓реЗрд╕рдореЗрдВрдЯ рд╡рд┐рдзрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рддрд╛рд░реНрдХрд┐рдХ рд╣реИред рдЬрд▓реНрдж рд╕реЗ рдЬрд▓реНрдж рдирд╣реАрдВ рдХрд╣рд╛:
string str = " . , ."; var result = str.Replace("", "...");
рд╣рдореНрдо, рдкрд╣рд▓реЗ рднрд╛рд▓реВ рдХреЗ рдмрдЬрд╛рдп рдПрдХ рджреАрд░реНрдШрд╡реГрддреНрдд рджрд┐рдЦрд╛рдИ рджрд┐рдпрд╛, рд▓реЗрдХрд┐рди рджреВрд╕рд░рд╛ рдмрд╣реБрдд рдЧрд░реНрд╡ рдерд╛ рдФрд░ рдПрдХ рдмрдбрд╝реЗ рдЕрдХреНрд╖рд░ рдХреЗ рд╕рд╛рде рд╢реБрд░реВ рд╣реБрдЖред рдФрд░ рд╣рдорд╛рд░реЗ рддрд░реАрдХреЗ рд╕реЗ рдкрд╣рд▓реЗ рдЙрд╕реЗ рдмрдЪрд╛рдпрд╛ред рд╣рдореЗрдВ рджреВрд╕рд░реА рдмрд╛рд░ рдЪрд▓рдирд╛ рд╣реЛрдЧрд╛ рдФрд░ рдЕрднрд┐рдорд╛рдирдкреВрд░реНрдг рдмрд┐рдпрд░ рдХреЛ рдмрджрд▓рдирд╛ рд╣реЛрдЧрд╛ред
string str = " . , ."; var result = str.Replace("", "...").Replace("", "...");
рдлреВ, рдпрд╣ рдирд┐рдХрд▓рд╛ред рдмрд╣реБрдд рд╕реБрдВрджрд░ рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдХреНрдпрд╛ рдпрд╣ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ? рдЕрдЪрд╛рдирдХ рдРрд╕рд╛ "рд╢рд╣рдж" рдЖрддрд╛ рд╣реИ?
рд╣рдордиреЗ рд╕реЛрдЪрд╛, рдЗрд╕ рддрд░рд╣ рдХреЗ рд╡рд┐рджреНрд░реЛрд╣рд┐рдпреЛрдВ рдХреЛ рднреА рдердХрд╛рдирд╛ рдФрд░ рдХрд╛рдЯ рджреЗрдирд╛ рдЪрд╛рд╣рд┐рдПред рд▓реЗрдХрд┐рди рдХрд┐рд╕ рдХреАрдордд рдкрд░!
string str = " . , ."; int index = str.IndexOf("", StringComparison.CurrentCultureIgnoreCase); while (index >= 0) { str = str.Remove(index, "".Length); str = str.Insert(index, "..."); index = str.IndexOf("", StringComparison.CurrentCultureIgnoreCase); }
рдЗрд╕ рдХреЛрдб рдореЗрдВ рдХреБрдЫ рдЧрд▓рдд рд╣реИред рдФрд░ рджреЛ рд╕рдорд╕реНрдпрд╛рдПрдВ рд╣реИрдВ:
- рдкреНрд░рддрд┐рд░рдХреНрд╖рд╛ рдХреЗ рдХрд╛рд░рдг рд╣рд░ рдХрджрдо рдкрд░ рд▓рд╛рдЗрдиреЛрдВ рдХреЗ рдлрд┐рд░ рд╕реЗ рдирд┐рд░реНрдорд╛рдг рдХреЗ рдХрд╛рд░рдг рдзреАрдореА рдирд┐рд╖реНрдкрд╛рджрди
- рдЙрдкрдпреЛрдЧрд┐рддрд╛рд╡рд╛рджреА рдХреЛрдб рдХрд╛ рдПрдХ рдирд┐рдореНрди-рд╕реНрддрд░реАрдп рдЯреБрдХрдбрд╝рд╛, рдЬрд┐рд╕реЗ рдЖрдорддреМрд░ рдкрд░ рдПрдХ рд╡рд░реНрдЧ рдореЗрдВ рд╕рдВрджрд░реНрднрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬрд┐рд╕реЗ
Util
рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рднреБрд▓рд╛ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдПрдХ рдЖрдХрд░реНрд╖рдХ рд╢рдмреНрджрд╛рд░реНрде рд╕рддреНрдпрд╛рдкрд┐рдд рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рдмреАрдЪ (рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ, рдХреНрдпрд╛ рдЖрдк рдХрд▓реНрдкрдирд╛рдУрдВ рдХреА рднреА рдХрд▓реНрдкрдирд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ?)
рдЗрд╕реА рд╕рдордп, рдкреНрд░рджрд░реНрд╢рди рдореЗрдВ рд╕реБрдзрд╛рд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рдорд╛рдзрд╛рди рд╣реИ - рд╕реНрдЯреНрд░рд┐рдВрдЧрдмрд░реНрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдлрд┐рд░ рд╕реЗ рд▓рд┐рдЦрдирд╛ред
рд▓реЗрдХрд┐рди рдПрдХ рд╢рд╛рдВрдд рд░реВрдк рд╕реЗ рдЧрдВрднреАрд░ рд╕реМрдВрджрд░реНрдп рднрд╛рд╡рдирд╛ рдХреЗ рд╕рд╛рде рдХреНрдпрд╛ рдХрд░рдирд╛ рд╣реИ?
рдЖрдкрдХреЛ рдпрд╣ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ рдХрд┐ рдореМрдЬреВрджрд╛ .net рд╕реНрдЯреНрд░рд┐рдВрдЧ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдкреБрд░рд╛рдирд╛ рд╣реИред рдпрд╣ рдкреБрд░рд╛рддрди рд╣реИ, рдкрд░реНрдпрд╛рдкреНрдд рд░реВрдк рд╕реЗ рд▓рдЪреАрд▓рд╛ рдирд╣реАрдВ рд╣реИ рдФрд░ рдЖрдкрдХреЛ рдмрд╛рд░-рдмрд╛рд░ рд╕рд╛рдорд╛рдиреНрдп рдФрд░ рд╕рд░рд▓ рд╕рдВрдЪрд╛рд▓рди рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рд╕рд╛рд░реЗ рдЕрдЬреАрдм рдХреЛрдб рд▓рд┐рдЦрддреЗ рд╣реИрдВред
рдЕрднреА рддрдХ
null
рдЬрд╛рдВрдЪ рдХрд░рдирд╛ рди рднреВрд▓реЗрдВред рд╕реВрдЪрдХрд╛рдВрдХ рдХреЗ рд╕реАрдорд╛ рдореВрд▓реНрдпреЛрдВ рдХреА рдЬрд╛рдБрдЪ рдХрд░рддрд╛ рд╣реИред рдФрд░ рдЕрдЧрд░ рдЖрдк рд▓рд╛рдЗрдиреЛрдВ рдХреА рд▓рдВрдмрд╛рдИ рдХреЛ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рдкреНрд░рдмрдВрдзрд┐рдд рдХрд░рддреЗ рд╣реИрдВред
рдЗрд╕ рддрд░рд╣ рд╕реЗ рдзрд╛рд░рд╛рдкреНрд░рд╡рд╛рд╣ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдЗрдВрдЯрд░рдлреЗрд╕ рдХрд╛ рд╡рд┐рдЪрд╛рд░ рдкреИрджрд╛ рд╣реБрдЖред
рдЖрдзреБрдирд┐рдХ, рдкрдардиреАрдп рдФрд░ рд╕рд╛рде рд╣реА рдкрд░реАрдХреНрд╖рдг рдХрд┐рдпрд╛ рд╣реБрдЖредрджреЗрдЦрддреЗ рд╣реИрдВ рдХрд┐ рдпрд╣ рдХреНрдпрд╛ рдЖрдпрд╛ред
рд╕рдореНрдорд┐рд▓рд┐рдд рдСрдкрд░реЗрд╢рди рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг:
string t = " . ! " .Insert(", ").After(2, "").IgnoringCase().From(The.Beginning); t.Should().Be(" . , ! ");
рдЗрд╕реЗ
Insert " " after second "" ignoring case from the beginning.
рд░реВрдк рдореЗрдВ рдкрдврд╝рд╛ рдЬрд╛рддрд╛ рд╣реИ
Insert " " after second "" ignoring case from the beginning.
рд╣рд╛рд▓рд╛рдБрдХрд┐, рдпрд╣ рдореИрдВ рдХреНрдпрд╛ рд╣реВрдБ? рдФрд░ рдЬреИрд╕рд╛ рд╕реНрдкрд╖реНрдЯ рд╣реИред
рд╣рдо рдХреБрдЫ рд╣рдЯрд╛ рджреЗрдВрдЧреЗ:
string t = " -> ->, ->" .Remove(2, ""); transformed.Should().Be(" -> ->, ->");
рдЕрдм рд╕рдмрдХреБрдЫ рд╣рдЯрд╛ рджреЗрдВ, рдорд╛рдорд▓рд╛ рд╕рдВрд╡реЗрджрдирд╢реАрд▓:
string t = " ".RemoveAll("").IgnoringCase(); t.Should().Be(" ");
рдпрд╛ рдЗрд╕ рддрд░рд╣ рднреА:
string t = "Some very long string".RemoveChars('e', 'L', 'G').IgnoringCase(); t.Should().Be("Som vry on strin");
рдФрд░ рдЗрд╕рд▓рд┐рдП:
string t = " , ".RemoveVowels().For("ru"); t.Should().Be(" , ");
рдорд╛рдирдХ рддрд░реНрдХ рдХреЗ рд╡рд┐рд╕реНрддрд╛рд░ рдХреЗ рд▓рд┐рдП рдПрдХ рдЬрдЧрд╣ рдереА:
bool isEmptyOrWhiteSpace = " ".IsEmpty().OrWhiteSpace(); isEmptyOrWhiteSpace.Should().Be(true);
рд╡рд╣рд╛рдВ рдкреИрд╕реЗрдЬ:
var indexes = " , " .IndexesOf("").IgnoringCase(); indexes.Should().ContainInOrder(21, 44, 64);
рдФрд░ рдкреАрдЫреЗ:
var indexes = " , " .IndexesOf("").From(The.End); indexes.Should().ContainInOrder(44, 21);
рдФрд░ рднрд╛рд▓реВ рдХрд╛ рдЙрджрд╛рд╣рд░рдг рдХреЙрдореНрдкреИрдХреНрдЯ рдФрд░ рдкрдврд╝рдиреЗ рдореЗрдВ рдЖрд╕рд╛рди рд╣реИ:
string str = " . , ."; var result = str.ReplaceAll("").With("...").IgnoringCase();
рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЛ рд╕рдХреНрд░рд┐рдп рд░реВрдк рд╕реЗ рд▓рд┐рдЦрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИред рдХрдИ рдЗрдВрдЯрд░рдлреЗрд╕ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд╡рд┐рдХрд╕рд┐рдд рдХрд┐рдП рдЧрдП рд╣реИрдВ, рдФрд░ рдЕрдзрд┐рдХрд╛рдВрд╢ рдХреЛ рд▓рд╛рдЧреВ рдФрд░ рдкрд░реАрдХреНрд╖рдг рднреА рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред
рд▓реЗрдХрд┐рди рдЕрднреА рднреА рдмрд╣реБрдд рдХрд╛рдо рд╣реИ рдФрд░ рд╕рд╛рдореБрджрд╛рдпрд┐рдХ рд╕рд╣рд╛рдпрддрд╛ рдХрд╛рдо рдЖрдПрдЧреАред
рдЖрдк рдЗрд╕реЗ
NuGet рдХреЗ рд╕рд╛рде рдЬрд▓реНрджреА рд╕реЗ рдЖрдЬрд╝рдорд╛ рд╕рдХрддреЗ рд╣реИрдВред
рдФрд░
GitHub рдпрд╛
CodePlex рдкрд░ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреА рдорджрдж рдХрд░реЗрдВред