将单维数组拆分为2个数组

时间:2016-06-12 02:43:43

标签: c# mysql database

很抱歉没有提前这么清楚,我很难描述。 现在我在数据管理方面遇到了一些问题。我在数据库中有一些用于图形数据的东西字符串。

f0||Title Text||f1||Subtitle Text||f2||Option 1||f3||Option 2

现在,我可以通过使用" ||"查询数据并将上面显示的字符串拆分为单维数组。分隔器。截至目前,代码如下。

MySQLHandler handler = new MySQLHandler(this.text_DataIP.Text.ToString());
        List<string>[] data = handler.SelectCG("graphics", text_CGBuffer.Text.ToString());
        string x = data[2][0].ToString();
        string[] y = x.Split(new string[] { "||" }, StringSplitOptions.None);
        // For each string in the new string array, lets separate them into their own strings for adding to the DataSet
        for (int n = 0; n < y.Length; )

        DataSet dataset = new DataSet();
        DataTable table = dataset.Tables.Add();
        table.Columns.Add("fieldid");
        table.Columns.Add("values");

缺少的是代码,对于数组中的每个其他字符串,它将交替将数据添加到DataTable。例如,&#34; f0,f1,f2,f3&#34;将进入专栏&#34; fieldid&#34;其他字符串将进入值列。

我正在考虑做一个for循环,但我不知道这是否是最有效的方法。什么会更有效,我将如何实现这一目标?

2 个答案:

答案 0 :(得分:1)

这是我测试过的一个例子。我认为这对你有用:

string x = "f0||Title Text||f1||Subtitle Text||f2||Option 1||f3||Option 2";
string[] y = x.Split(new string[] { "||" }, StringSplitOptions.None);

DataSet ds = new DataSet();
DataTable dt = ds.Tables.Add();
List<object> rowvalues = new List<object>(); //to hold the row values

//Loop through 2 at a time,  
for (int n = 0; n < y.Length; n = n + 2) 
{
    dt.Columns.Add(y[n]); //add the column
    rowvalues.Add(y[n + 1]); //and save the value
}

//Create the row
var dr = dt.NewRow();
//Set the row values
dr.ItemArray = rowvalues.ToArray();

答案 1 :(得分:0)

for循环就足够了。最有效的方法是只循环一次循环以分隔id和值。

        for (int i = 0; i < y.Length; i++)
        {
           string fieldid = y[i];
            string value = y[++i];
        }