diff --git a/ICD.Common.Utils.Tests/Extensions/EnumerableExtensionsTest.cs b/ICD.Common.Utils.Tests/Extensions/EnumerableExtensionsTest.cs
index 88ffe0d..70139af 100644
--- a/ICD.Common.Utils.Tests/Extensions/EnumerableExtensionsTest.cs
+++ b/ICD.Common.Utils.Tests/Extensions/EnumerableExtensionsTest.cs
@@ -267,6 +267,23 @@ namespace ICD.Common.Utils.Tests.Extensions
Assert.AreEqual(6, values[5]);
}
+ [Test]
+ public void PadRightTest()
+ {
+ int[] items = new[] {1, 2, 3}.PadRight(5).ToArray();
+
+ Assert.AreEqual(5, items.Length);
+ Assert.AreEqual(1, items[0]);
+ Assert.AreEqual(2, items[1]);
+ Assert.AreEqual(3, items[2]);
+ Assert.AreEqual(0, items[3]);
+ Assert.AreEqual(0, items[4]);
+
+ items = items.PadRight(2).ToArray();
+
+ Assert.AreEqual(5, items.Length);
+ }
+
[Test]
public void OrderTest()
{
diff --git a/ICD.Common.Utils/Extensions/EnumerableExtensions.cs b/ICD.Common.Utils/Extensions/EnumerableExtensions.cs
index c9fcadb..d28fe0a 100644
--- a/ICD.Common.Utils/Extensions/EnumerableExtensions.cs
+++ b/ICD.Common.Utils/Extensions/EnumerableExtensions.cs
@@ -472,6 +472,31 @@ namespace ICD.Common.Utils.Extensions
yield return item;
}
+ ///
+ /// Pads the given sequence to the given count size with default items.
+ ///
+ ///
+ ///
+ ///
+ ///
+ [PublicAPI]
+ public static IEnumerable PadRight(this IEnumerable extends, int count)
+ {
+ if (extends == null)
+ throw new ArgumentNullException("extends");
+
+ int index = 0;
+
+ foreach (T item in extends)
+ {
+ yield return item;
+ index++;
+ }
+
+ for (; index < count; index++)
+ yield return default(T);
+ }
+
///
/// Default ordering for the items in the sequence.
///