很抱歉没有提前这么清楚,我很难描述。 现在我在数据管理方面遇到了一些问题。我在数据库中有一些用于图形数据的东西字符串。
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循环,但我不知道这是否是最有效的方法。什么会更有效,我将如何实现这一目标?
答案 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];
}