私はツリー構造に変換したいリストを持っています。これを木構造に変換するにはどうすればよいですか?C#(親子リスト)のネストされたリスト
QuestionDetails.cs
using System;
using System.Collections.Generic;
using System.Data;
using System.Data.SqlClient;
using System.Linq;
using System.Web;
using System.Web.Script.Serialization;
public class QuestionDetails
{
public int QID { get; set; }
public int QuestionID { get; set; }
public string Question { get; set; }
public string Answer { get; set; }
public int AnswerType { get; set; }
//public string Question { get; set; }
public IList<QuestionDetails> ChildLayers { get; private set; }
public QuestionDetails()
{
ChildLayers = new List<QuestionDetails>();
}
}
public IList<QuestionDetails> daya()
{
SqlConnection con = new SqlConnection("Data Source=ADMIN-PC;Initial Catalog=Test;Integrated Security=True");
SqlCommand cmd = new SqlCommand(); //
cmd.CommandText = "selectdata";
cmd.Connection = con;
cmd.CommandType = CommandType.StoredProcedure;
con.Open();
SqlDataAdapter da = new SqlDataAdapter(cmd);
DataSet ds = new DataSet();
da.Fill(ds);
// da.Fill(ds.Tables["AnswerMaster"]);
DataTable DT = new DataTable();
DT = ds.Tables["Table"];
DataTable DT1 = new DataTable();
DT1 = ds.Tables["Table1"];
IList<QuestionDetails> data = ConvertDataTable<QuestionDetails>(DT);
IList<QuestionDetails> hierarcy = new List<QuestionDetails>();
//IList<ChildLayers> hierarcy1 = new List<ChildLayers>();
foreach (var layer in data)
{
var sublayers = data.Where(i => i.QID == layer.QuestionID && i.QID != 0);
if (sublayers.Any())
{
hierarcy.Add(layer);
}
foreach (var sublayer in sublayers)
{
layer.ChildLayers.Add(sublayer);
}
}
return hierarcy;
}
そして、私はこのフォーマットで出力したいが:
{
question id=1
Question ="asasaS"
{
ANSWER="SDASA";
ANSWER="SADSAD";
ANSWER="SADSA";
ANSWER="SADSAD";
}
question id=2
Question ="XCVXVXCVXC"
{
ANSWER="SDASA";
ANSWER="SADSAD";
ANSWER="SADSA";
ANSWER="SADSAD";
}
}
私は、リストのクラスを作成した を手助けしなさいネストされたリストとしてリストデータが欲しいです。私は木構造に変換したいリストを持っています。これを木構造に変換するにはどうすればよいですか?
あなたは 'System.Web.Script.Serialization'を持っていますので、出力としてJsonを期待していますか? –
ネストされたリストタイプのdata.means 1つの質問に複数のオプションがあるので、オプションは質問の対象になるはずです –
Jsonとして 'return hierarcy;'を返すのですか? –