2012-07-18 72 views
0

我想从数据表中提取值并存储到集合中。什么是最好的方法来做到这一点?从Datatable中提取值并存储到c中的集合中#

在我的DataTable中的行会像数据:

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

回答

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); 
      } 
1

你说一个数据表,但提供的XML数据在你的例子中,所以我不确定.. bu基本上,这是你需要做的:

var myList = new List<string>(); 

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

一些这样的事情。如果您可以向我们提供有关DataTable的信息而不是您的源XML文件,则更容易给出更好的示例。 :)

+0

XML存储在数据表中我行 – Anuya 2012-07-18 03:22:39

+0

看看我的新的答案。 – Matt 2012-07-18 03:32:03

0

您可能需要对“datatable”的含义更清楚一点,因为您的示例数据是XML。假设您知道足以从data/xml获取行:

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

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

当然,你会想验证内部数据是否有内容。

+0

根据对之前答案的评论:你有两件事要处理。 1 - 使用XElement/XDocument解析XML。 2-使用上面的例子解析内容。 – 2012-07-18 03:25:08

+0

你能否提供一个例子。 – Anuya 2012-07-18 03:27:17

相关问题