Как реализовать код C # для идентификатора заказа, разделенного запятыми и диапазона, разделенного дефисами, и отображения всей информации о заказе - PullRequest
1 голос
/ 10 февраля 2012

Пример: 1,4-90, 292,123 Необходимо отобразить всю информацию о заказе 1 4,5,6 .... 90 292 123.

Какой подход к решению этой проблемы?

Аналогично отслеживанию в UPS или fedex, если в окне поиска указано несколько заказов.

Я имел в виду, если в строке поиска я приведу 1,4-90, 292,123 этой строки, результат, который должен вернуться, представляет собой сеточное представление всех данных, соответствующих каждому из идентификаторов заказа соответственно. Я хочу знать, как разобрать строку в коллекцию и отправить их в базу данных и показать информацию в сетке для ...

1 4,5,6 .... 90 292 123.

как отдельная строка ... откуда я тоже могу создавать отчеты (альтернатива)

1 Ответ

0 голосов
/ 10 февраля 2012

Пожалуйста, попробуйте.

static ArrayList list;

    static void Main(string[] args)
    {
        string str = "1,4-90,292,123";

        string[] arr = str.Split(',');

        list = new ArrayList();

        for (int i = 0; i < arr.Length; i++)
        {
            string tmp = arr[i];
            if (tmp.IndexOf('-') != -1)
            {
                Range(tmp);
            }
            else list.Add(int.Parse(tmp));
        }

        list.Sort();

        object[] intResult = list.ToArray();

        //print the final result
        for (int i = 0; i < intResult.Length; i++)
        {
            Console.WriteLine(intResult[i].ToString());
        }

        Console.Read();

    }

    static void Range(string range)
    {
        string[] tmpArr = range.Split('-');
        int stInt = int.Parse(tmpArr[0]);
        int edInt = int.Parse(tmpArr[1]);

        int[] intArr = new int[(edInt - stInt) + 1];

        for (int i = 0; stInt <= edInt; i++)
        {
            list.Add(stInt++);
        }

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