Free cookie consent management tool by TermsFeed Policy Generator

source: branches/2839_HiveProjectManagement/HeuristicLab.Persistence/3.3/Auxiliary/StringExtensions.cs @ 16321

Last change on this file since 16321 was 16057, checked in by jkarder, 6 years ago

#2839:

File size: 2.5 KB
Line 
1#region License Information
2/* HeuristicLab
3 * Copyright (C) 2002-2018 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
4 *
5 * This file is part of HeuristicLab.
6 *
7 * HeuristicLab is free software: you can redistribute it and/or modify
8 * it under the terms of the GNU General Public License as published by
9 * the Free Software Foundation, either version 3 of the License, or
10 * (at your option) any later version.
11 *
12 * HeuristicLab is distributed in the hope that it will be useful,
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
15 * GNU General Public License for more details.
16 *
17 * You should have received a copy of the GNU General Public License
18 * along with HeuristicLab. If not, see <http://www.gnu.org/licenses/>.
19 */
20#endregion
21
22using System.Collections.Generic;
23
24namespace HeuristicLab.Persistence.Auxiliary {
25  /// <summary>
26  /// Extension methods for the <see cref="System.String"/> class.
27  /// </summary>
28  public static class StringExtensions {
29
30    /// <summary>
31    /// Enumeration over the substrings when split with a certain delimiter.
32    /// </summary>
33    /// <param name="s">The string.</param>
34    /// <param name="delimiter">The delimiter.</param>
35    /// <returns>An enumeration over the delimited substrings.</returns>
36    public static IEnumerable<string> EnumerateSplit(this string s, char delimiter) {
37      int startIdx = 0;
38      for (int i = 0; i < s.Length; i++) {
39        if (s[i] == delimiter) {
40          if (i > startIdx) {
41            yield return s.Substring(startIdx, i - startIdx);
42          }
43          startIdx = i + 1;
44        }
45      }
46      if (startIdx < s.Length)
47        yield return s.Substring(startIdx, s.Length - startIdx);
48    }
49
50    /// <summary>
51    /// Enumeration over the substrings when split with a certain delimiter..
52    /// </summary>
53    /// <param name="s">The string.</param>
54    /// <param name="delimiter">The delimiter.</param>
55    /// <returns>An enumerator over the delimited substrings.</returns>
56    public static IEnumerator<string> GetSplitEnumerator(this string s, char delimiter) {
57      int startIdx = 0;
58      for (int i = 0; i < s.Length; i++) {
59        if (s[i] == delimiter) {
60          if (i > startIdx) {
61            yield return s.Substring(startIdx, i - startIdx);
62          }
63          startIdx = i + 1;
64        }
65      }
66      if (startIdx < s.Length)
67        yield return s.Substring(startIdx, s.Length - startIdx);
68    }
69  }
70}
Note: See TracBrowser for help on using the repository browser.