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

あなたはDataTableと言いますが、あなたの例ではxmlデータを提供しているので、よくわかりません。基本的に、これはあなたがする必要があることです:

var myList = new List<string>();

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

そんな感じ。ソースxmlファイルではなく、DataTableに関する情報を提供できれば、より良い例を示すのが簡単になります。:)

于 2012-07-18T03:21:09.560 に答える
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 に答える
0

サンプルデータがXMLであるという点で、「datatable」の意味をもう少し明確にする必要があるかもしれません。data /xmlから行をフェッチするのに十分な知識がある場合:

各行を読み取り、内部値でString.Split()を使用して、リストにフィードできる文字列配列を生成します。

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

もちろん、内部データにコンテンツが含まれていることを検証する必要があります。

于 2012-07-18T03:23:09.787 に答える