From 3c42c0a7c1196cc290dbcdc55dcb84379ad523e4 Mon Sep 17 00:00:00 2001 From: Michael Williamson Date: Sun, 3 Apr 2016 13:38:53 +0100 Subject: C# backend: Implement for-each loops --- .../resources/csharp/runtime/java/util/Arrays.cs | 37 ++++++++++++++++++++++ 1 file changed, 37 insertions(+) create mode 100644 src/main/resources/csharp/runtime/java/util/Arrays.cs (limited to 'src/main/resources/csharp/runtime/java/util/Arrays.cs') diff --git a/src/main/resources/csharp/runtime/java/util/Arrays.cs b/src/main/resources/csharp/runtime/java/util/Arrays.cs new file mode 100644 index 0000000..6833582 --- /dev/null +++ b/src/main/resources/csharp/runtime/java/util/Arrays.cs @@ -0,0 +1,37 @@ +namespace Couscous.java.util { + internal static class Arrays { + internal static java.lang.Iterable asList(T[] values) { + return new _ArrayList(values); + } + } + + internal class _ArrayList : java.lang.Iterable { + private readonly T[] values; + + internal _ArrayList(T[] values) { + this.values = values; + } + + public java.lang.Iterator iterator() { + return new _ArrayIterator(values); + } + } + + internal class _ArrayIterator : java.lang.Iterator { + private readonly T[] values; + private int nextIndex; + + internal _ArrayIterator(T[] values) { + this.values = values; + this.nextIndex = 0; + } + + public bool hasNext() { + return nextIndex < values.Length; + } + + public T next() { + return values[nextIndex++]; + } + } +} -- cgit v1.2.3