c#中的动态数组

时间:2010-12-17 20:55:16

标签: c# arrays dynamic

我有SQL参数数组为...

SqlParameter [] sqlParams = new SqlParameter [2];

如果我想添加更多参数,我可以添加到当前数组吗?

3 个答案:

答案 0 :(得分:12)

不,你不能追加元素。在.NET中,数组是静态的。如果您想要动态集合,可以使用通用List<T>来动态添加元素。

var sqlParams = new List<SqlParameter>();
sqlParams.Add(param1);
sqlParams.Add(param2);
...

// convert to a static array if needed
SqlParameter[] result = sqlParams.ToArray();

答案 1 :(得分:3)

使用System.Collections.Generic.List&lt;&gt;

可能更好
List<SqlParameter> sqlParams = new List<SqlParameter>();
sqlParams.Add(x);
sqlParams.Add(y);
sqlParams.Add(z);

如果你需要一个阵列,你可以随时去:

sqlParams.ToArray();

答案 2 :(得分:1)

实际上,我只使用SqlCommand的内置Parameters属性。

    System.Data.SqlClient.SqlConnection connection 
        = new System.Data.SqlClient.SqlConnection("connection string goes here");
    System.Data.SqlClient.SqlCommand command = connection.CreateCommand();

    System.Data.SqlClient.SqlParameter parameter = command.CreateParameter();
    parameter.ParameterName = "@ParameterName";
    parameter.DbType = DbType.String;
    parameter.Value = "Some String Value";

    command.Parameters.Add(parameter);

然后,如果您需要访问它们,可以通过以下方式执行:

SqlParameter param = command.Parameters[0];

通过这种方式,您无需添加范围并跟踪单独的数组或列表&lt;&gt;。