[hyena] [StringUtil] Add a Join IEnumerable<string> method
- From: Gabriel Burt <gburt src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [hyena] [StringUtil] Add a Join IEnumerable<string> method
- Date: Thu, 15 Jul 2010 21:46:40 +0000 (UTC)
commit b712d518846bfccbbfd92a1ea85ee2d29844a1ff
Author: Gabriel Burt <gabriel burt gmail com>
Date: Thu Jul 15 14:45:26 2010 -0700
[StringUtil] Add a Join IEnumerable<string> method
Is an extension method, uses StringBuilder
Hyena/Hyena/StringUtil.cs | 15 +++++++++++++++
Hyena/Hyena/Tests/StringUtilTests.cs | 14 ++++++++++++++
2 files changed, 29 insertions(+), 0 deletions(-)
---
diff --git a/Hyena/Hyena/StringUtil.cs b/Hyena/Hyena/StringUtil.cs
index 232641e..8075a8c 100644
--- a/Hyena/Hyena/StringUtil.cs
+++ b/Hyena/Hyena/StringUtil.cs
@@ -337,5 +337,20 @@ namespace Hyena
}
return s;
}
+
+ public static string Join (this IEnumerable<string> strings, string sep)
+ {
+ var sb = new StringBuilder ();
+ foreach (var str in strings) {
+ sb.Append (str);
+ sb.Append (sep);
+ }
+
+ if (sb.Length > 0 && sep != null) {
+ sb.Length -= sep.Length;
+ }
+
+ return sb.ToString ();
+ }
}
}
diff --git a/Hyena/Hyena/Tests/StringUtilTests.cs b/Hyena/Hyena/Tests/StringUtilTests.cs
index ecf331e..e7c940c 100644
--- a/Hyena/Hyena/Tests/StringUtilTests.cs
+++ b/Hyena/Hyena/Tests/StringUtilTests.cs
@@ -31,6 +31,7 @@
using System;
using System.IO;
+using System.Linq;
using NUnit.Framework;
using Hyena;
@@ -145,6 +146,19 @@ bar"));
Assert.AreEqual ("foobaz foo bar", StringUtil.RemoveHtml (@"foo<a
href=http://lkjdflkjdflkjj>baz foo< /a> bar"));
}
+
+ [Test]
+ public void TestJoin ()
+ {
+ var s = new string [] { "foo", "bar" };
+ Assert.AreEqual ("foo, bar", s.Join (", "));
+ Assert.AreEqual ("foobar", s.Join (""));
+ Assert.AreEqual ("foobar", s.Join (null));
+ Assert.AreEqual ("", new string [] {}.Join (", "));
+
+ s = new string [] { "foo", "bar", "baz" };
+ Assert.AreEqual ("foo -- bar -- baz", s.Join (" -- "));
+ }
}
[TestFixture]
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]