Создайте список строк от A до BBB в C # - PullRequest
0 голосов
/ 24 октября 2011

Доброе утро,

У меня есть простой вопрос, с которым я мог бы помочь.Мне нужно создать список строк, которые будут начинаться с буквы A и заканчиваться в какой-то другой точке, например BBB, но я не уверен, что это лучший и самый быстрый способ сделать это.

Заранее спасибо.

Хорошо, если требуется дополнительная информация.

Мне нужно создать простой способ создания списка отсеков для склада.Этот склад может иметь переменное число проходов в нем, переменное количество строк в каждом проходе и переменное количество корзин для строки.Поэтому, когда пользователь приходит к настройке своего конкретного склада, он может указать начальную букву прохода и конечную букву прохода.

Как вы теперь можете видеть, жестко закодированный список от A до ... несобираюсь на работу.

1 Ответ

0 голосов
/ 24 октября 2011

Нет проверки ошибок (начальный номер может быть больше конечного номера, в этом случае вы получите бесконечный цикл), но код работает нормально.

Надеюсь, вы хотя бы поймете это перед отправкой!

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace testList
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.Write((int)'A');
            Console.Write((int)'Z');
            Console.WriteLine("Whats the starting string?");
            string start = Console.ReadLine().ToUpper();
            Console.WriteLine("Whats the end string?");
            string end = Console.ReadLine().ToUpper();

            List<string> retVal = new List<string>();
            retVal.Add(start);

            string currentString = start;
            while (currentString != end)
            {
                currentString = IncrementString(currentString);
                Console.WriteLine(currentString);
                retVal.Add(currentString);
            }
            retVal.Add(end);
            Console.WriteLine("Done");
            Console.ReadKey();
        }

        private static string IncrementString(string currentString)
        {
            StringBuilder retVal = new StringBuilder(currentString);
            char endChar= currentString[currentString.Length - 1];
            for (int x = (currentString.Length - 1); x >= 0; x--)
            {
                char c = currentString[x];
                if (TryIncrementChar(ref c))
                {
                    retVal[x] = c;
                    break;
                }
                else
                {
                    retVal[x] = 'A';
                    if (x == 0)
                    {
                        retVal.Insert(0,'A');
                    }
                }
            }
            return retVal.ToString();

        }
        private static bool TryIncrementChar(ref char currChar)
        {
            if (currChar != 'Z')
            {
                currChar++;
                return true;
            }
            return false;
        }
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...