Elegant code
time to read 7 min | 1359 words
I just like this code, so I thought I would publish it.
1: public static class ArrayExtension2: {3: public static T[] GetOtherElementsFromElement<T>(this T[] array , T element)4: {5: var index = Array.IndexOf(array, element);6: if (index == -1)7: return array;8: return array.Skip(index + 1).Union(array.Take(index)).ToArray();9: }10: }
And the unit test:
1: public class ReplicationUnitTest2: {3: [Fact]4: public void Will_distribute_work_starting_with_next_node()5: {6: var nodes = new[] { 1, 2, 3 };7: Assert.Equal(new[] { 3, 1 }, nodes.GetOtherElementsFromElement(2));8: Assert.Equal(new[] { 1, 2 }, nodes.GetOtherElementsFromElement(3));9: Assert.Equal(new[] { 2, 3 }, nodes.GetOtherElementsFromElement(1));10: Assert.Equal(new[] { 1, 2, 3 }, nodes.GetOtherElementsFromElement(4));11: }12: }

Comments
Comment preview