добавление массива строк в существующий сеанс массива c # - PullRequest
0 голосов
/ 24 сентября 2018

Привет! Я создаю веб-приложение, в котором у меня есть сеанс, состоящий из строки массива. Я хочу добавить больше элементов в этот конкретный сеанс

    if (System.Web.HttpContext.Current.Session["Questions"] == null)
    {
        System.Web.HttpContext.Current.Session["Questions"] = Questions; // here question is string array, 
        //assigning value of array to session if session is null
    }
    else
    {
        for (var i = 0; i < ((string[])System.Web.HttpContext.Current.Session["Questions"]).Length; i++)
        {
           // what i need to do to push other item in the present session array
           //wants to add Question here 
        }
    }

Ответы [ 2 ]

0 голосов
/ 24 сентября 2018

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

Вы можете сделать что-то подобное, используя Linq:

if (System.Web.HttpContext.Current.Session["Questions"] == null)
{
    System.Web.HttpContext.Current.Session["Questions"] = Questions; // here question is string array, 
    //assigning value of array to session if session is null
}
else
{
    string[] newQuestions = { "how are you?", "how do you do?" };
    string[] existingQuestions = (string[])HttpContext.Current.Session["Questions"];
    HttpContext.Current.Session["Questions"] = newQuestions.Union(existingQuestions).ToArray();
}
0 голосов
/ 24 сентября 2018

Сеанс - это хранилище, поэтому вы не можете просто создать ссылку на объекты внутри него, чтобы обновить их.

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

Если вы используете общий список, вы можете использовать методы Add или AddRange для добавления в любое место списка

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