-1

データテーブルからリストにデータを挿入したいだけです。

これが私のクラスです:

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の値しか持っていません。残りの2つはnullのままになります。どうすればいいですか?

4

3 に答える 3

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などにすることもできます。

于 2012-12-12T14:38:37.303 に答える
0
lstWhereColumnValue.AddRange(
            dtAllColumnData.Rows.Cast<DataRow>()
                           .Select(x => new WhereColumnValue() {_columnName = x["COLUMN_NAME"].ToString()})
                           .ToList());

説明:

これにより、dtAllColumnDataのすべての行が繰り返され、各行に対して新しい行が作成WhereColumnValueされ、「Column_Name」の値が_columnNameプロパティに割り当てられます。

于 2012-12-12T14:38:26.617 に答える
0

lstColumnでは、とは何lbTableColumnsですか?

あなたが1つを宣言して初期化したので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);
}
于 2012-12-12T14:38:42.347 に答える