0

我想从数据表中提取一个值并存储到一个集合中。最好的方法是什么?

我的数据表中的行将包含如下数据:

 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 ....
4

3 回答 3

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);
            }
于 2012-07-18T03:31:49.797 回答
1

您说的是 DataTable,但在您的示例中提供了 xml 数据,所以我不确定.. 基本上,这就是您需要做的:

var myList = new List<string>();

foreach (DataRow row in dataTable.Rows)
{
    myList.Add(row.Field<string>("myCol"));
}

类似的东西。如果您可以向我们提供有关您的 DataTable 而不是您的源 xml 文件的信息,那么给出一个更好的示例会更容易。:)

于 2012-07-18T03:21:09.560 回答
0

您可能需要更清楚地了解“数据表”的含义,因为您的示例数据是 XML。如果您足够了解从 data/xml 中获取行:

读取每一行并在内部值上使用 String.Split() 来生成一个字符串数组,该数组可以输入到一个列表中。

var list = new List<string>(String.Split(",", innerData));

当然,您需要验证内部数据是否有内容。

于 2012-07-18T03:23:09.787 回答