diff --git a/csharp/tutorials/RangesIndexes/IndicesAndRanges.cs b/csharp/tutorials/RangesIndexes/IndicesAndRanges.cs deleted file mode 100644 index 8675e32359c..00000000000 --- a/csharp/tutorials/RangesIndexes/IndicesAndRanges.cs +++ /dev/null @@ -1,151 +0,0 @@ -using System; -using System.Linq; - -namespace RangesIndexes -{ - class IndicesAndRanges - { - // - private string[] words = new string[] - { - // index from start index from end - "The", // 0 ^9 - "quick", // 1 ^8 - "brown", // 2 ^7 - "fox", // 3 ^6 - "jumped", // 4 ^5 - "over", // 5 ^4 - "the", // 6 ^3 - "lazy", // 7 ^2 - "dog" // 8 ^1 - }; - // - - internal int Syntax_LastIndex() - { - // - Console.WriteLine($"The last word is {words[^1]}"); - // - return 0; - } - - internal int Syntax_Range() - { - // - string[] quickBrownFox = words[1..4]; - foreach (var word in quickBrownFox) - Console.Write($"< {word} >"); - Console.WriteLine(); - // - return 0; - } - - internal int Syntax_LastRange() - { - // - string[] lazyDog = words[^2..^0]; - foreach (var word in lazyDog) - Console.Write($"< {word} >"); - Console.WriteLine(); - // - return 0; - } - - internal int Syntax_PartialRange() - { - // - string[] allWords = words[..]; // contains "The" through "dog". - string[] firstPhrase = words[..4]; // contains "The" through "fox" - string[] lastPhrase = words[6..]; // contains "the, "lazy" and "dog" - foreach (var word in allWords) - Console.Write($"< {word} >"); - Console.WriteLine(); - foreach (var word in firstPhrase) - Console.Write($"< {word} >"); - Console.WriteLine(); - foreach (var word in lastPhrase) - Console.Write($"< {word} >"); - Console.WriteLine(); - // - return 0; - } - - internal int Syntax_IndexRangeType() - { - // - Index the = ^3; - Console.WriteLine(words[the]); - Range phrase = 1..4; - string[] text = words[phrase]; - foreach (var word in text) - Console.Write($"< {word} >"); - Console.WriteLine(); - // - return 0; - } - - internal int Syntax_WhyChosenSemantics() - { - // - int[] numbers = Enumerable.Range(0, 100).ToArray(); - int x = 12; - int y = 25; - int z = 36; - - Console.WriteLine($"{numbers[^x]} is the same as {numbers[numbers.Length - x]}"); - Console.WriteLine($"{numbers[x..y].Length} is the same as {y - x}"); - - Console.WriteLine("numbers[x..y] and numbers[y..z] are consecutive and disjoint:"); - Span x_y = numbers[x..y]; - Span y_z = numbers[y..z]; - Console.WriteLine($"\tnumbers[x..y] is {x_y[0]} through {x_y[^1]}, numbers[y..z] is {y_z[0]} through {y_z[^1]}"); - - Console.WriteLine("numbers[x..^x] removes x elements at each end:"); - Span x_x = numbers[x..^x]; - Console.WriteLine($"\tnumbers[x..^x] starts with {x_x[0]} and ends with {x_x[^1]}"); - - Console.WriteLine("numbers[..x] means numbers[0..x] and numbers[x..] means numbers[x..^0]"); - Span start_x = numbers[..x]; - Span zero_x = numbers[0..x]; - Console.WriteLine($"\t{start_x[0]}..{start_x[^1]} is the same as {zero_x[0]}..{zero_x[^1]}"); - Span z_end = numbers[z..]; - Span z_zero = numbers[z..^0]; - Console.WriteLine($"\t{z_end[0]}..{z_end[^1]} is the same as {z_zero[0]}..{z_zero[^1]}"); - // - return 0; - } - - internal int ComputeMovingAverages() - { - // - int[] sequence = Sequence(1000); - - for(int start = 0; start < sequence.Length; start += 100) - { - Range r = start..(start+10); - var (min, max, average) = MovingAverage(sequence, r); - Console.WriteLine($"From {r.Start} to {r.End}: \tMin: {min},\tMax: {max},\tAverage: {average}"); - } - - for (int start = 0; start < sequence.Length; start += 100) - { - Range r = ^(start + 10)..^start; - var (min, max, average) = MovingAverage(sequence, r); - Console.WriteLine($"From {r.Start} to {r.End}: \tMin: {min},\tMax: {max},\tAverage: {average}"); - } - - (int min, int max, double average) MovingAverage(int[] subSequence, Range range) => - ( - subSequence[range].Min(), - subSequence[range].Max(), - subSequence[range].Average() - ); - - int[] Sequence(int count) => - Enumerable.Range(0, count).Select(x => (int)(Math.Sqrt(x) * 100)).ToArray(); - // - - return 0; - } - } -} diff --git a/csharp/tutorials/RangesIndexes/Program.cs b/csharp/tutorials/RangesIndexes/Program.cs deleted file mode 100644 index 236aa180891..00000000000 --- a/csharp/tutorials/RangesIndexes/Program.cs +++ /dev/null @@ -1,27 +0,0 @@ -using System; - -namespace RangesIndexes -{ - class Program - { - static void Main(string[] args) - { - Console.WriteLine("========== Starting Index and Range Samples. =========="); - var indexSamples = new IndicesAndRanges(); - Console.WriteLine(" ========== Last Index. =========="); - indexSamples.Syntax_LastIndex(); - Console.WriteLine(" ========== Range. =========="); - indexSamples.Syntax_Range(); - Console.WriteLine(" ========== Last Range. =========="); - indexSamples.Syntax_LastRange(); - Console.WriteLine(" ========== Partial Range. =========="); - indexSamples.Syntax_PartialRange(); - Console.WriteLine(" ========== Index and Range types. =========="); - indexSamples.Syntax_IndexRangeType(); - Console.WriteLine(" ========== Why this syntax. =========="); - indexSamples.Syntax_WhyChosenSemantics(); - Console.WriteLine(" ========== Scenario. =========="); - indexSamples.ComputeMovingAverages(); - } - } -} diff --git a/csharp/tutorials/RangesIndexes/RangesIndexes.csproj b/csharp/tutorials/RangesIndexes/RangesIndexes.csproj deleted file mode 100644 index 958d2f1daae..00000000000 --- a/csharp/tutorials/RangesIndexes/RangesIndexes.csproj +++ /dev/null @@ -1,8 +0,0 @@ - - - - Exe - netcoreapp3.0 - - -