我只想将数据表中的一些数据插入到列表中。
这是我的班级:
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有价值。其余两个将保持为空。我该怎么做?
答案 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)
那么lstColumn
和lbTableColumns
是什么?
由于您已声明并初始化了一个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);
}