C#中的通用列表数据插入

时间:2012-12-12 14:32:23

标签: c# list generic-list

我只想将数据表中的一些数据插入到列表中。

这是我的班级:

class WhereColumnValue
{
    private string columnName;

    public string _columnName
    {
        get { return columnName; }
        set { columnName = value; }
    }

    private string setValue;

    public string _setValue
    {
        get { return setValue; }
        set { setValue = value; }
    }

    private bool setValueStatus;

    public bool _setValueStatus
    {
        get { return setValueStatus; }
        set { setValueStatus = value; }
    }
}

现在我有一个WhereColumnValue类型列表。

List<WhereColumnValue> lstWhereColumnValue = new List<WhereColumnValue>();

如何将数据插入此lstWhereColumnValue?

我尝试过以下代码:

foreach (DataRow tmp in dtAllColumnData.Rows)
            {
                lstColumn.Add(tmp["COLUMN_NAME"].ToString());
                lbTableColumns.Items.Add(tmp["COLUMN_NAME"]);
                lstWhereColumnValue.Add(***);

            }

我必须在这里添加一个项目( * )。但我只对_columnValue有价值。其余两个将保持为空。我该怎么做?

3 个答案:

答案 0 :(得分:1)

您需要实例化您的类并将其填写的实例添加到您的列表中。像这样:

foreach (DataRow tmp in dtAllColumnData.Rows)
{
    WhereColumnValue val = new WhereColumnValue();
    val._columnName = tmp["COLUMN_NAME"];
    val._setValue = tmp{"SET_VALUE"];
    ....
    lstColumn.Add(val);
}

您可能还希望遵循命名约定并使您的属性为ColumnName,SetValue等。

答案 1 :(得分:0)

lstWhereColumnValue.AddRange(
            dtAllColumnData.Rows.Cast<DataRow>()
                           .Select(x => new WhereColumnValue() {_columnName = x["COLUMN_NAME"].ToString()})
                           .ToList());

说明:

这将迭代dtAllColumnData中的所有行,为每一行创建一个新的WhereColumnValue并将“Column_Name”的值赋给_columnName属性。

答案 2 :(得分:0)

那么lstColumnlbTableColumns是什么?

由于您已声明并初始化了一个List<WhereColumnValue>,我将使用:

List<WhereColumnValue> lstWhereColumnValue = new List<WhereColumnValue>();
foreach (DataRow tmp in dtAllColumnData.Rows)
{
    WhereColumnValue wcv = new WhereColumnValue{
        _columnName = tmp.Field<string>("COLUMN_NAME") // maybe more fields here
    };
    lstWhereColumnValue.Add(wcv);
}