我想从数据表中提取一个值并存储到一个集合中。最好的方法是什么?
我的数据表中的行将包含如下数据:
Row 1 <configuration><Store parameter="Atribs">AB,CD</Store></configuration>
Row 2 <configuration><Store parameter="Atribs">EF,GH,IJ</Store></configuration>
......
我想检索并将值存储在像
这样的集合中Collection 1 :
AB
CD
Collection 2 :
EF
GH
IJ
Collection ....
答案 0 :(得分:1)
你说的是一个DataTable,但在你的例子中提供了xml数据,所以我不确定..基本上,这就是你需要做的事情:
var myList = new List<string>();
foreach (DataRow row in dataTable.Rows)
{
myList.Add(row.Field<string>("myCol"));
}
这样的事情。如果您可以向我们提供有关您的DataTable而不是源xml文件的信息,那么提供更好的示例会更容易。 :)
答案 1 :(得分:1)
你去......
var table = new DataTable();
var column = new DataColumn("col1");
table.Columns.Add(column);
var row = table.NewRow();
row[0] = @"<configuration><Store parameter=""Atribs"">AB,CD</Store></configuration>";
table.Rows.Add(row);
row = table.NewRow();
row[0] = @"<configuration><Store parameter=""Atribs"">EF,GH,IJ</Store></configuration>";
table.Rows.Add(row);
var data = new List<List<string>>();
foreach (DataRow dRow in table.Rows)
{
var temp = new List<string>();
string xml = dRow.Field<string>("col1");
var element = XElement.Parse(xml);
string[] values = element.Descendants("Store").First().Value.Split(',');
temp.AddRange(values);
data.Add(temp);
}
答案 2 :(得分:0)
您可能需要更清楚“数据表”的含义,因为您的示例数据是XML。如果您知道足以从data / xml中获取行:
读取每一行并在内部值上使用String.Split()生成一个字符串数组,该数组可以送入List。
var list = new List<string>(String.Split(",", innerData));
当然,您需要验证内部数据是否包含内容。