Как добавить новый параметр в SqlParameter [] Collection?

Я хочу использовать нечто подобное:

using (DataSet ds = new DataSet())
{
    SqlParameter[] dbParams = new SqlParameter[]
    {                        
        new SqlParameter("@PromptID", promptID)
    };

    if (scenarioID != 0)
        dbParams.Concat(new SqlParameter("@ScenarioID", scenarioID));
    //OR
    if (scenarioID != 0)
        dbParams.Add(new SqlParameter("@ScenarioID", scenarioID));
    }
}

Я искал добавление коллекции IEnumarable, но это не решило мою проблему. Должен ли я создавать две коллекции и конкатрировать их? Я думаю, что должен быть простой способ добавить элемент. Любые предложения?

Ответ 1

Просто используйте список:

var parameters = new List<SqlParameter>
{
    new SqlParameter("@PromptID", promptID)
};
if (scenarioID != 0)
{
    parameters.Add(new SqlParameter("@ScenarioID", scenarioID));
}

Если вам действительно нужен массив в конце, вы всегда можете использовать:

var array = parameters.ToArray();

Ответ 2

var parameters = new List<SqlParameter>
{
    new SqlParameter("@PromptID", promptID),       
};

Ответ 3

Вы должны использовать List вместо массива.

   List<SqlParameter> dbParams = new List<SqlParameter>(); 

а затем вы можете сделать

   dbParams.Add(new SqlParameter("@PromptID", promptID);

Ответ 4

Если вы знаете максимальное количество элементов (instanses типа SQLParameter), то следующий подход идеален. Кроме того, вы можете пойти с подходом List<SqlParameter>, который кратко описывается сверстниками.

 var dbParams = new SqlParameter[2];
 dbParams.SetValue(new SqlParameter("@PromptID", promptID),0);
 dbParams.SetValue(new SqlParameter("@ScenarioID", scenarioID), scenarioID != 0 ? 1 : 0);