Free cookie consent management tool by TermsFeed Policy Generator

source: stable/HeuristicLab.Persistence/3.3/Auxiliary/StringExtensions.cs @ 16310

Last change on this file since 16310 was 15584, checked in by swagner, 7 years ago

#2640: Updated year of copyrights in license headers on stable

File size: 2.5 KB
RevLine 
[8924]1#region License Information
2/* HeuristicLab
[15584]3 * Copyright (C) 2002-2018 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
[8924]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
[3937]21
[8924]22using System.Collections.Generic;
23
[3937]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          }
[4068]43          startIdx = i + 1;
[3937]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.