C# Найти массив по его содержимому - PullRequest
1 голос
/ 11 июля 2020

В C# есть простой способ найти массив, содержащий определенную строку c. В качестве примера того, что я пытаюсь передать:

string[] Factory = {"Pepsi"};
string[] TheFactoryOfPepsi = System.FindArrayByContent("Pepsi");

Я не возражаю против каких-либо ужасно хакерских исправлений, я просто ищу способ поиска массива, как показано выше. Если кто-нибудь знает, как мне помочь, вот мой настоящий код:

static void Main(string[] args)
{
    string[] greg = { "greg", "a reasonably stained Lemono laptop", "some bread", "two huge maps of america", "a plastic plant", "cheese" };
    string[][] boxes = { greg };
    s("Welcome to Boxes, a box opening simulator. \nIt's just what you'd expect from a real life experience, conveyed in text form!\nExtra info will pop up in blue, press a key and it'll tell you a thing or two.");
    o("Open boxes by entering their names!");
    string a = Console.ReadLine();
    if (Array.Exists(boxes, element => element[0] == a))
    {
        string aname = greg[0];
        greg = greg.Skip(1).ToArray();
        box(aname, greg);
    }
}

static void s(string t)
{
    Console.ForegroundColor = ConsoleColor.Yellow;
    Console.WriteLine(t);
    Console.ForegroundColor = ConsoleColor.White;
}

static void box(string name, string[] items)
{
    string mario = (char.ToUpper(name[0]) +name.Substring(1).ToString().ToLower()).ToString();
    s("Alright, buckle up for the " + mario + "box!");
    Random rnd = new Random();
    string item = items[rnd.Next(1, items.Length)];
    System.Threading.Thread.Sleep(3000);
    s("You got " + item + " from the " + mario + "box!");
}

static void o(string t)
{
    Console.ForegroundColor = ConsoleColor.DarkBlue;
    Console.CursorVisible = false;
    Console.WriteLine("...");
    Console.SetCursorPosition(0, Console.CursorTop - 1);
    Console.ReadKey();
    Console.ForegroundColor = ConsoleColor.Blue;
    Console.SetCursorPosition(0, Console.CursorTop);
    Console.Write(t);
    Console.SetCursorPosition(0, Console.CursorTop + 1);
    Console.CursorVisible = true;
    Console.ForegroundColor = ConsoleColor.White;
}

Basi c попытки помочь очень приветствуются!

PS: greg - единственный массив в ящиках и он используется в большей части кода в качестве заполнителя. Другие массивы должны делать то же самое, что и greg, поэтому на данный момент он явно жестко запрограммирован и не может использоваться, если я добавлю больше массивов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...