c# - 求序列化的思路
本文介绍了c# - 求序列化的思路的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
问 题
现有一个城市名表;
我想要把所有城市都查询出来,转换成 [省[市[区]]] 这样的格式;
表结构
想要的效果
现在思路有点乱,想请前辈们指教
补充,其实我就是想要一个递归实现,以下方法过于暴力,而且有点问题
解决方案
class Node{
public Guid Id{get;set;}
public string Name{get;set;}
public List<Node> Nodes{get;set;}
}
class NodeService{
public string GetJsonCity()
{
var nlist=GetNodeList();
var result=JSON.toJSONString(nlist); //自己找个json格式化的代码
//返回的结果可能与你的要求不一样,不过重点是这个思路,不一样的看着改下
return result;
}
public List<Node> GetNodeList(List<CityModel> clist=null,CityModel cm=null)
{
List<CityModel> cmlist=new List<CityModel>();
//第一次递归时获取所有的地址信息
if(clist==null)
{
clist=_City_DB.All().ToList();
cmlist=clist.Where(t=>t.level==0).ToList();//我这里是从国开始,要想把城市作为第一级,把0改成1就是;
}
else
{
cmlist=clist.Where(t=>t.PId==cm.Id).ToList();//获取下属城市|区
}
List<Node> nlist=new List<Node>();
foreach(var c in cmlist)
{
Node n=new Node(){
Id=c.Id,
Name=c.District,
Nodes=GetNodeList(clist,c)
}
nlist.Add(n);
}
}
}
这篇关于c# - 求序列化的思路的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文