Как я могу оптимизировать этот метод foreach?Это займет более 2 минут - PullRequest
0 голосов
/ 28 октября 2018

Итак, вот мой код, я выполняю SQL-запрос, который возвращает более 500 тысяч строк, и после этого я заполняю данные в список, чтобы сделать так много запросов linq с этими данными.

Есть ли лучшее решение для обработки данных и заполнения данных в список?

        Logger.Info("Executing sql query finished. Succesfully collected {0} requests.", requestTable.Rows.Count);

        foreach (DataRow row in requestTable.Rows)
        {
            string receiveDateString = row["RequestReceiveDate"].ToString();
            DateTime receiveDate = default(DateTime);
            if (!string.IsNullOrWhiteSpace(receiveDateString))
            {
                receiveDate = Convert.ToDateTime(receiveDateString);
            }

            string validationDateString = row["RequestValidationDate"].ToString();
            DateTime validationDate = default(DateTime);
            if (!string.IsNullOrWhiteSpace(validationDateString))
            {
                validationDate = Convert.ToDateTime(validationDateString);
            }

            string addresseeNumberString = row["RequestAddresseNumber"].ToString();
            int addresseNumber = default(int);
            if (!string.IsNullOrWhiteSpace(addresseeNumberString))
            {
                addresseNumber = Convert.ToInt32(addresseeNumberString);
            }

            handledTodayRequests.Add(new Request(row["RequestNumber"].ToString(), Convert.ToInt32(row["RequestStatus"].ToString()), Convert.ToDateTime(row["RequestDoneDate"].ToString()), Convert.ToDateTime(row["RequestCreationDate"].ToString()), receiveDate, validationDate, Convert.ToDateTime(row["RequestDateDue"].ToString()), row["RequestSupplierComments"].ToString(),
                     addresseNumber, row["RequestReference"].ToString(), row["RequsetAddresseeType"].ToString(), row["ClaimNumber"].ToString(), Convert.ToInt32(row["ClaimSchemeNumber"].ToString()), row["ClaimSchemeName"].ToString()));
        }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...