Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- namespace gf_20171109_01 {
- class Program {
- static private Random random = new Random();
- static String[] randomStringArray(int arrayLength, int firstLetterRangeLength, int minLength, int lengthRangeLength) {
- if (arrayLength < 0) throw new ArgumentOutOfRangeException("arrayLength");
- if (firstLetterRangeLength < 1 || firstLetterRangeLength > 26) throw new ArgumentOutOfRangeException("firstLetterCount");
- if (minLength < 0) throw new ArgumentOutOfRangeException("minLength");
- if (lengthRangeLength < 0) throw new ArgumentOutOfRangeException("lengthRange");
- String[] retVal = new String[arrayLength];
- for (int i=0; i < arrayLength; i++) {
- StringBuilder sb = new StringBuilder(minLength + lengthRangeLength);
- Char firstLetter = (Char)random.Next(65,65+firstLetterRangeLength); // 'A' to another letter
- sb.Append(firstLetter);
- int length=random.Next(minLength, minLength + lengthRangeLength);
- for (int j=0; j<length; j++) {
- Char nextLetter=(Char) random.Next(97, 97 + 26);
- sb.Append(nextLetter);
- };
- retVal[i] = sb.ToString();
- };
- return retVal;
- }
- static void Main(string[] args) {
- String[] nameList = randomStringArray(8, 5, 3, 6);
- Console.WriteLine("Unsorted random names:");
- for (int i=0; i < nameList.Length; i++) {
- Console.WriteLine(nameList[i]);
- };
- Console.WriteLine();
- var nameListSortedAndGrouped=nameList
- .OrderBy((String s) => s)
- .GroupBy((String s) => s[0])
- ;
- Console.WriteLine("Sorted and grouped:");
- foreach (var a in nameListSortedAndGrouped) {
- Console.WriteLine("Names starting with " + a.Key.ToString() + ":");
- foreach (var b in a) {
- Console.WriteLine(b.ToString());
- };
- };
- Console.WriteLine(); Console.Write("Press any key to exit..."); Console.ReadKey();
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement