0

私はデータテーブルを持っていますdtRecordsTokenパイプ(|)で区切られた値を含む列が含まれています

例えば

234|82|91
235|81|90
237|83|95
238|85|98

別のテーブルの出力が必要です。たとえば、の列に対応する値を持つdtCompleteRecords3つの列があります。a, b, cTokendtRecords

助けていただければ幸いです

4

4 に答える 4

7

文字列があるとします。

string str = "234|82|91 235|81|90 237|83|95 238|85|98"

string.Splitを使用して、文字列要素の配列を取得します。

string[] strArray = str.Split('|');

後で、これらの値をデータテーブルに挿入できます。

于 2012-08-08T10:11:28.790 に答える
4

これを試して:

 var dtCompleteRecords = new DataTable("CompleteRecords");
 dtCompleteRecords.Columns.Add(new DataColumn("a", typeof(string)));
 dtCompleteRecords.Columns.Add(new DataColumn("b", typeof(string)));
 dtCompleteRecords.Columns.Add(new DataColumn("c", typeof(string)));


dtRecords.AsEnumerable()
    .Select(row => row["Token"].ToString().Split('|'))
    .ToList()
    .ForEach(array => dtCompleteRecords.Rows.Add(array));
于 2012-08-08T10:28:25.020 に答える
2

Split('|')文字列に適用されるメソッドを探しています。だから例えばmyCell.Text.Split('|')

于 2012-08-08T10:08:59.093 に答える
0

これはうまくいくでしょう

        DataTable dt = yourdatatable;
        DataTable dtable2 = new DataTable();
        dtable2.Columns.Add("column1", System.Type.GetType("System.String"));
        dtable2.Columns.Add("column2", System.Type.GetType("System.String"));
        dtable2.Columns.Add("column3", System.Type.GetType("System.String"));
        string value = "";
        for (int i = 0; i < dt.Rows.Count; i++)
        {
            value = dt.Rows[0][i].ToString();
            string[] splitPipeValue = value.Split('|');
            DataRow drow = dtable2.NewRow();
            drow[0] = splitPipeValue[0].ToString();
            drow[1] = splitPipeValue[1].ToString();
            drow[2] = splitPipeValue[2].ToString();
            dtable2.Rows.Add(drow);
        }
    }
于 2012-08-08T10:37:32.033 に答える