Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.Collections.Generic;
- public class NameGenerator
- {
- private HashSet<string> maleFirstNames;
- private HashSet<string> femaleFirstNames;
- private HashSet<string> surnames;
- private Random rnd;
- public NameGenerator(Random random = null)
- {
- maleFirstNames = new HashSet<string>
- {
- "Aldric", "Branthor", "Cedric", "Darian", "Elric", "Finnian", "Gareth", "Haldor", "Ithilien", "Jareth",
- "Kael", "Lorcan", "Marius", "Nathair", "Orin", "Perrin", "Quillen", "Roran", "Soren", "Talon", "Ulfar",
- "Valen", "Wulfric", "Xavier", "Yorick", "Zephyr", "Auron", "Benedict", "Corvus", "Dexter", "Eldric",
- "Faelan", "Gideon", "Hawthorne", "Ignatius", "Jasper", "Kieran", "Lysander", "Magnus", "Nikolai",
- "Oberon", "Percival", "Quentin", "Ryder", "Sebastian", "Thaddeus", "Ulric", "Vance", "Wesley", "Xander",
- "Yarrow", "Zander", "Asher", "Baelor", "Cassius", "Dorian", "Ezekiel", "Finnegan", "Garrick", "Hadrian",
- "Isidore", "Jace", "Kellan", "Lucian", "Malachi", "Nolan", "Osiris", "Peregrine", "Quincy", "Rhys",
- "Silas", "Theodore", "Ulysses", "Varian", "Wilder", "Xavian", "Yorath", "Zaire", "Atlas", "Bastian",
- "Caspian", "Dante", "Elias", "Fabian", "Gavin", "Hugo", "Isaac", "Jaxon", "Kai", "Lachlan", "Milo",
- "Nico", "Orion", "Paxton", "Ronan", "Sawyer", "Theo", "Uriah", "Vincent", "Wyatt", "Xander", "Yael", "Zayn"
- };
- femaleFirstNames = new HashSet<string>
- {
- "Aria", "Briar", "Celestia", "Dahlia", "Elara", "Fiona", "Genevieve", "Hazel", "Isolde", "Jasmine",
- "Kiera", "Luna", "Maeve", "Nyx", "Ophelia", "Phaedra", "Quinn", "Rosalind", "Seraphina", "Thalia",
- "Ursula", "Violet", "Willow", "Xanthe", "Yara", "Zara", "Aurora", "Belle", "Cassandra", "Daphne",
- "Eleanor", "Felicity", "Guinevere", "Helena", "Ivy", "Juliet", "Kira", "Lyra", "Morgana", "Nova",
- "Odette", "Persephone", "Quintessa", "Rowan", "Serenity", "Talia", "Uma", "Vivienne", "Wren", "Xena",
- "Yasmine", "Zephyra", "Arabella", "Bryony", "Calista", "Delilah", "Elowen", "Fawn", "Gwendolyn",
- "Hermione", "Isadora", "Jessamine", "Kiara", "Lilith", "Minerva", "Niamh", "Oona", "Pandora",
- "Quiana", "Rhiannon", "Saoirse", "Tamsin", "Undine", "Vespera", "Winter", "Xiomara", "Yseult",
- "Zephyrine", "Athena", "Bronwyn", "Cordelia", "Drusilla", "Evangeline", "Fleur", "Giselle", "Hestia",
- "Ingrid", "Jocasta", "Kalliope", "Lavinia", "Mireille", "Nerissa", "Olympia", "Pallas", "Querida",
- "Rowena", "Sapphira", "Tanith", "Ursuline", "Valkyrie", "Winifred", "Xylia", "Ygritte", "Zelda"
- };
- surnames = new HashSet<string>
- {
- "Aldaine", "Blackthorn", "Crestfall", "Dreadmoor", "Ebonwood", "Frostbane", "Goldenvale", "Hawkridge",
- "Ironheart", "Jadeborn", "Kingsley", "Lorekeeper", "Moonshadow", "Nightfall", "Oakenshield", "Proudfoot",
- "Quicksilver", "Ravenwood", "Stormcloak", "Thornblade", "Underhill", "Valeheart", "Whitewood", "Xanadu",
- "Yewshade", "Zephyrblade", "Ashenbrook", "Brightwood", "Copperfield", "Duskwood", "Emberstone", "Firesong",
- "Griffith", "Holloway", "Ivoryfang", "Juniper", "Kingsgrave", "Lionheart", "Mistwood", "Netherwood",
- "Oakenspear", "Pinehurst", "Quillson", "Redwood", "Silverthorn", "Stonewall", "Talltree", "Umberfall",
- "Valerian", "Wildewood", "Xandros", "Yarrowfield", "Zephyrcrest", "Avalanche", "Blackwater", "Crimsonwind",
- "Darkwood", "Eversong", "Frostwind", "Goldleaf", "Hawthorn", "Ironclad", "Jadewind", "Kingsmark",
- "Lunarfall", "Mistborn", "Nighthawk", "Oathbreaker", "Pinecrest", "Quicksand", "Ravenclaw", "Shadowbane",
- "Starfall", "Thunderheart", "Underwood", "Valkyrie", "Winterbourne", "Xanathar", "Yellowknife",
- "Zephyrwind", "Arcane", "Bloodmoon", "Crowfeather", "Dawnblade", "Elmwood", "Frostfang", "Goldenleaf",
- "Hollowgrave", "Ironwood", "Jadehorn", "Knightshade", "Lioncrest", "Morningsong", "Nightraven", "Oceansong",
- "Phoenix", "Quicksilver", "Ravensong", "Shadowbrook", "Stagheart", "Twilight", "Umbra", "Viper", "Wintersong",
- "Xavier", "Yew", "Zephyr", "Alder", "Briar", "Cypress", "Dusk", "Ember", "Frost", "Gale", "Holly", "Ivy",
- "Juniper", "Lark", "Moss", "Nightshade", "Orchid", "Pine", "Quill", "Rose", "Sage", "Thorn", "Violet",
- "Willow", "Yarrow", "Zinnia", "Ash", "Bramble", "Dawn", "Echo", "Fawn", "Glen", "Hazel", "Iris", "Jade",
- "Kestrel", "Luna", "Meadow", "Nova", "Opal", "Petal", "Rain", "Sky", "Tansy", "Vale", "Wren", "Yew", "Zephyr"
- };
- rnd = random ?? new Random();
- }
- public void AddMaleFirstName(string name)
- {
- maleFirstNames.Add(name);
- }
- public void AddFemaleFirstName(string name)
- {
- femaleFirstNames.Add(name);
- }
- public void AddSurname(string surname)
- {
- surnames.Add(surname);
- }
- public string GenerateMaleFirstName()
- {
- if (maleFirstNames.Count == 0)
- throw new InvalidOperationException("No male first names available.");
- int index = rnd.Next(maleFirstNames.Count);
- return maleFirstNames.ElementAt(index);
- }
- public string GenerateFemaleFirstName()
- {
- if (femaleFirstNames.Count == 0)
- throw new InvalidOperationException("No female first names available.");
- int index = rnd.Next(femaleFirstNames.Count);
- return femaleFirstNames.ElementAt(index);
- }
- public string GenerateSurname()
- {
- if (surnames.Count == 0)
- throw new InvalidOperationException("No surnames available.");
- int index = rnd.Next(surnames.Count);
- return surnames.ElementAt(index);
- }
- public string GenerateFullName(bool isMale)
- {
- string firstName = isMale ? GenerateMaleFirstName() : GenerateFemaleFirstName();
- string surname = GenerateSurname();
- return $"{firstName} {surname}";
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement