62,046
社区成员
发帖
与我相关
我的任务
分享
public enum cType
{
A,
B,
C
}
DataTable Tab=new DataTable()
Tab.Columns.Add("id", typeof(System.Int32));
Tab.Columns.Add("name", typeof(System.String));
Tab.Columns.Add("type", typeof(System.String));
DataRow row = Tab.NewRow();
row["id"] = 1;
row["name"] = "11";
row["type"] = "A";
Tab.Rows.Add(row);
row = Tab.NewRow();
row["id"] = 2;
row["name"] = "22";
row["type"] = "A";
Tab.Rows.Add(row);
row = Tab.NewRow();
row["id"] = 3;
row["name"] = "33";
row["type"] = "A";
Tab.Rows.Add(row);
row = Tab.NewRow();
row["id"] = 4;
row["name"] = "44";
row["type"] = "A";
Tab.Rows.Add(row);
row = Tab.NewRow();
row["id"] = 5;
row["name"] = "55";
row["type"] = "B";
Tab.Rows.Add(row);
row = Tab.NewRow();
row["id"] = 6;
row["name"] = "66";
row["type"] = "B";
Tab.Rows.Add(row);
public class Parents
{
public string cname { get; set; }
public List<Childs> child { get; set; }
}
public class Childs{
public string fname { get; set; }
public string fvalue { get; set; }
public string sname { get; set; }
public string svalue { get; set; }
public string tname { get; set; }
public string tvalue { get; set; }
}
List<Parents> result = new List<Parents>();
Parents parent = new Parents();
int temp = 0;
string tempValue = "";
Childs childs = new Childs();
for (int i = 0; i < Tab.Rows.Count; i++)
{
cType ct;
if (Enum.TryParse(Tab.Rows[i]["type"].ToString(), out ct))
{
if (tempValue == string.Empty)
{
parent.cname = Tab.Rows[i]["type"].ToString();
tempValue = Tab.Rows[i]["type"].ToString();
}
if (tempValue == Tab.Rows[i]["type"].ToString() && temp <= 2)
{
childs = GetChilds(temp % 3, Tab.Rows[i]["id"].ToString(), Tab.Rows[i]["name"].ToString(), childs);
temp++;
}
if ((tempValue != Tab.Rows[i]["type"].ToString() && temp <= 2) || (i == Tab.Rows.Count-1))
{
for (int j = temp; j < 3; j++)
{
childs = GetChilds(j % 3, "", "", childs);
}
if (i != Tab.Rows.Count - 1)
{
i--;
}
temp = 3;
}
if (temp == 3)
{
parent.child.Add(childs);
result.Add(parent);
temp = 0;
tempValue = "";
childs = new Childs();
parent = new Parents();
}
}
}
static Childs GetChilds(int temp, string name, string value,Childs childs)
{
if (temp == 0)
{
childs.fname = name;
childs.fvalue = value;
}
if (temp == 1)
{
childs.sname = name;
childs.svalue = value;
}
if (temp == 2)
{
childs.tname = name;
childs.tvalue = value;
}
return childs;
}
namespace Test
{
public enum cType
{
A,
B,
C
}
public class Parents
{
public string cname { get; set; }
public List<Childs> child { get; set; }
public Parents()
{
child = new List<Childs>();
}
}
public class Childs
{
public string fname { get; set; }
public string fvalue { get; set; }
public string sname { get; set; }
public string svalue { get; set; }
public string tname { get; set; }
public string tvalue { get; set; }
}
class Program
{
static void Main(string[] args)
{
DataTable Tab = new DataTable();
Tab.Columns.Add("id", typeof(System.Int32));
Tab.Columns.Add("name", typeof(System.String));
Tab.Columns.Add("type", typeof(System.String));
DataRow row = Tab.NewRow();
row["id"] = 1;
row["name"] = "11";
row["type"] = "A";
Tab.Rows.Add(row);
row = Tab.NewRow();
row["id"] = 2;
row["name"] = "22";
row["type"] = "A";
Tab.Rows.Add(row);
row = Tab.NewRow();
row["id"] = 3;
row["name"] = "33";
row["type"] = "A";
Tab.Rows.Add(row);
row = Tab.NewRow();
row["id"] = 4;
row["name"] = "44";
row["type"] = "A";
Tab.Rows.Add(row);
row = Tab.NewRow();
row["id"] = 5;
row["name"] = "55";
row["type"] = "B";
Tab.Rows.Add(row);
row = Tab.NewRow();
row["id"] = 6;
row["name"] = "66";
row["type"] = "B";
Tab.Rows.Add(row);
List<Parents> result = new List<Parents>();
Parents parent = new Parents();
int temp = 0;
string tempValue = "";
Childs childs = new Childs();
for (int i = 0; i < Tab.Rows.Count; i++)
{
cType ct;
if (i == 4)
{
}
if (Enum.TryParse(Tab.Rows[i]["type"].ToString(), out ct))
{
if (tempValue == string.Empty)
{
parent.cname = Tab.Rows[i]["type"].ToString();
tempValue = Tab.Rows[i]["type"].ToString();
}
if (tempValue == Tab.Rows[i]["type"].ToString() && temp <= 2)
{
childs = GetChilds(temp % 3, Tab.Rows[i]["id"].ToString(), Tab.Rows[i]["name"].ToString(), childs);
temp++;
}
if ((tempValue != Tab.Rows[i]["type"].ToString() && temp <= 2) || (i == Tab.Rows.Count-1))
{
for (int j = temp; j < 3; j++)
{
childs = GetChilds(j % 3, "", "", childs);
}
if (i != Tab.Rows.Count - 1)
{
i--;
}
temp = 3;
}
if (temp == 3)
{
parent.child.Add(childs);
result.Add(parent);
temp = 0;
tempValue = "";
childs = new Childs();
parent = new Parents();
}
}
}
}
static Childs GetChilds(int temp, string name, string value,Childs childs)
{
if (temp == 0)
{
childs.fname = name;
childs.fvalue = value;
}
if (temp == 1)
{
childs.sname = name;
childs.svalue = value;
}
if (temp == 2)
{
childs.tname = name;
childs.tvalue = value;
}
return childs;
}
}
}
自己去优化下@@
using System;
using System.Collections.Generic;
using System.Data;
using System.Text;
namespace Com
{
public class Demo
{
public Demo()
{
List<Parents> list_datamode = new List<Parents>();
DataTable dt = new DataTable();
Parents DM = new Parents();
DM.cname = "A";
DM.child.Add(new Childs() { fname = "1", fvalue = "11", sname = "2", svalue = "22", tname = "3", tvalue = "33" });
list_datamode.Add(DM);
DM = new Parents();
DM.cname = "B";
DM.child.Add(new Childs() { fname = "5", fvalue = "55", sname = "6", svalue = "66", tname = "7", tvalue = "77" });
list_datamode.Add(DM);
//再把Parents转为json字符就成
//[{ cname : 'A,
// child : [ {fname: "1", fvalue: "11", sname: "2", svalue: "22", tname: "3", tvalue: "33" },
// { fname: "4", fvalue: "44", sname: "",svalue: "" , tname: "", tvalue: ""}]},
//{ cname : 'B,
// child : [{ fname: "5", fvalue: "55",sname: "6", svalue: "66",tname: "", tvalue: "" }]
//}];
// }
}
public class Parents
{
public string cname { get; set; }
public List<Childs> child { get; set; }
}
public class Childs
{
public string fname { get; set; }
public string fvalue { get; set; }
public string sname { get; set; }
public string svalue { get; set; }
public string tname { get; set; }
public string tvalue { get; set; }
}
}
/quote]
写死,我也会呢[
using System;
using System.Collections.Generic;
using System.Data;
using System.Text;
namespace Com
{
public class Demo
{
public Demo()
{
List<Parents> list_datamode = new List<Parents>();
DataTable dt = new DataTable();
Parents DM = new Parents();
DM.cname = "A";
DM.child.Add(new Childs() { fname = "1", fvalue = "11", sname = "2", svalue = "22", tname = "3", tvalue = "33" });
list_datamode.Add(DM);
DM = new Parents();
DM.cname = "B";
DM.child.Add(new Childs() { fname = "5", fvalue = "55", sname = "6", svalue = "66", tname = "7", tvalue = "77" });
list_datamode.Add(DM);
//再把Parents转为json字符就成
//[{ cname : 'A,
// child : [ {fname: "1", fvalue: "11", sname: "2", svalue: "22", tname: "3", tvalue: "33" },
// { fname: "4", fvalue: "44", sname: "",svalue: "" , tname: "", tvalue: ""}]},
//{ cname : 'B,
// child : [{ fname: "5", fvalue: "55",sname: "6", svalue: "66",tname: "", tvalue: "" }]
//}];
// }
}
public class Parents
{
public string cname { get; set; }
public List<Childs> child { get; set; }
}
public class Childs
{
public string fname { get; set; }
public string fvalue { get; set; }
public string sname { get; set; }
public string svalue { get; set; }
public string tname { get; set; }
public string tvalue { get; set; }
}
}