Member 11589429 Ответов: 1

Как взять динамический тип данных в объекте словаря


Здравствуйте, я придумал ситуацию, когда я беру значение от пользователя в виде строки запроса. Имя первого 2-го параметра-fix, поэтому имя name строки запроса-fix.После этих 2 параметров пользователь может ввести или не ввести какой-либо параметр.Количество параметров может быть от 1 до многих и варьироваться в зависимости от типа данных.

Экс: имя_сайта/образец.аспн?имя пользователя="&амп;имяпользователя="&амп;дата=
Экс: имя_сайта/образец.аспн?имя пользователя="&амп;имяпользователя="&амп;дата=&ампер;сумма=

Вот почему я создал объект словаря и сохранил в нем ключ и значение динамической строки запроса(а не имя пользователя и идентификатор пользователя)


Dictionary<string, string> queryStringValues = new Dictionary<string, string>();

foreach (string key in Request.QueryString.AllKeys)
{
    queryStringValues.Add(key, Request.QueryString[key]);
}


Здесь я создал словарь. но мой ключ должен быть строкой, а значение может и не быть строкой.Это может быть int, date.Как это принять.Наконец-то я хочу проверить тип данных значения.Как это сделать

Что я уже пробовал:

Dictionary<string, string> queryStringValues = new Dictionary<string, string>();

foreach (string key in Request.QueryString.AllKeys)
{
    queryStringValues.Add(key, Request.QueryString[key]);
}

1 Ответов

Рейтинг:
1

Andy Lanng

Во-первых, строка запроса-это именно строка.

Вам всегда придется анализировать каждый тип значения в соответствии с тем, как вы собираетесь его использовать.

Во-вторых, "динамический" тип - это нечто очень специфическое, а не то, что вы хотите сказать, но я понимаю, что вы имеете в виду.

Чтобы хранить различные "типы" в одном типе переменной, этот тип переменной должен быть самым низким общим базовым типом типа, общим для всех типов, которые вы хотите сохранить. Это будет тип "объект".

Вам все равно придется отказаться от типа объекта в свой тип know в любом случае, так что этот шаг кажется бессмысленным. Просто разбирайте строку, когда вы ее используете.

Я надеюсь, что это поможет
Энди ^_^