Быстрый способ создать список значений в C#?

Как сказал @Maneesh, это может быть вызвано тем, что функция вызывается несколько раз, не ожидая ответа. Вы упомянули, что уже добавили таймаут в Axios, но есть известная проблема , из-за которой простое добавление тайм-аута в Axios не работает. (У меня сама эта проблема уже была в прошлом)

Существует обходной путь для установки тайм-аута для запроса - вручную прервать запрос, используя cancelToken и обычный javascript [112 ]

function setRequestTimeout(source, timeout) {
  setTimeout(() => {
    source.cancel('timeout')
  }, timeout);
}

function getRequest() {
  return new Promise((resolve, reject) => {

    const timeout = 10000

    let source = axios.CancelToken.source()
    setRequestTimeout(source, timeout)

    try {
      const response = await axios.get('/your-address/', {
        timeout: timeout,
        headers: {
          'Content-type': 'application/json'
        },
        cancelToken: source.token
      })
      resolve(response)

    } catch (error) {
      reject(error)
    }
  })
}

Это работало для меня в прошлом, мое решение основано на комментариях, найденных в этой проблеме, о которой я упоминал ранее, надеюсь, это поможет вам!

86
задан Paolo Fulgoni 19 August 2016 в 07:55
поделиться

7 ответов

Проверьте C# 3.0's Инициализаторы Набора.

var list = new List<string> { "test1", "test2", "test3" };
157
ответ дан Neil Williams 24 November 2019 в 07:59
поделиться

Если Вы надеетесь уменьшать помеху, рассмотреть

var lst = new List<string> { "foo", "bar" };

Это использует две функции C# 3.0: вывод типа ( var ключевое слово) и инициализатор набора для списков.

С другой стороны, если можно суметь обойтись массивом, это еще короче (небольшим количеством):

var arr = new [] { "foo", "bar" };
17
ответ дан Konrad Rudolph 24 November 2019 в 07:59
поделиться
IList<string> list = new List<string> {"test1", "test2", "test3"}
6
ответ дан Matt Grande 24 November 2019 в 07:59
поделиться

В C# 3 можно сделать:

IList<string> l = new List<string> { "test1", "test2", "test3" };

Это использует новый синтаксис инициализатора набора в C# 3.

В C# 2 я просто использовал бы Вашу вторую опцию.

8
ответ дан Reed Copsey 24 November 2019 в 07:59
поделиться

Можно отбросить new string[] часть:

List<string> values = new List<string> { "one", "two", "three" };
5
ответ дан John Rasch 24 November 2019 в 07:59
поделиться

Можно упростить ту строку кода немного в C# при помощи инициализатора набора.

var lst = new List<string> {"test1","test2","test3"};
4
ответ дан Noldorin 24 November 2019 в 07:59
поделиться

Список значений быстро? Или даже список объектов!

Я - просто новичок в языке C#, но мне нравится использовать

  • Хеш-таблица
  • Arraylist
  • Таблица данных
  • Наборы данных

и т.д.

Существует только слишком много способов сохранить объекты

-5
ответ дан Brad 24 November 2019 в 07:59
поделиться
Другие вопросы по тегам:

Похожие вопросы: