翱翔门户,乔莎旗舰店,湖南春晚2015完整版
/// <summary>
/// 递归一个list<provinceorg>
/// </summary>
/// <returns></returns>
public void recursionprovinceorgs(list<provinceorg> provinceorgs, ref list<provinceorg> _provinceorgs)
{
if (provinceorgs != null && provinceorgs.count() > 0)
{
// 1、通过linq查询出children为空的。
var _provinceorgs_ = provinceorgs.where(p => p.children.count() == 0);
if (_provinceorgs_.count() > 0)
{
//2、将children为空的添加至_provinceorgs
_provinceorgs.addrange(_provinceorgs_);
}
// 处理剩余不为空的,父级的org
var _provinceorgs_surplus = provinceorgs.where(p => p.children.count() > 0);
foreach (provinceorg provinceorg in _provinceorgs_surplus)
{
provinceorg provinceorgclone = provinceorg.clone();
_provinceorgs.add(provinceorgclone);
recursionprovinceorgs(provinceorg.children, ref _provinceorgs);
}
}
}
实体类:
public class provinceorg : icloneable
{
public int orgid { get; set; }
public int parentorgid { get; set; }
public int areaid { get; set; }
public string areacode { get; set; }
public string orgname { get; set; }
public string fullorgname { get; set; }
public string orgtype { get; set; }
public string state { get; set; }
public string orgcode { get; set; }
public int seq { get; set; }
public string isbusdep { get; set; }
public string depcatecode { get; set; }
public string legalperson { get; set; }
public string contacts { get; set; }
public string phone { get; set; }
public string address { get; set; }
public string orgfunctions { get; set; }
public int num;
public list<provinceorg> children { get; set; }
/// <summary>
/// 克隆并返回一个对象。
/// </summary>
/// <returns></returns>
public provinceorg clone()
{
provinceorg p = (provinceorg)this.memberwiseclone();
p.children = new list<provinceorg>();
return p;
}
object icloneable.clone()
{
return this.clone();
}
}
如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复
Blazor server side 自家的一些开源的, 实用型项目的进度之 CEF客户端
.NET IoC模式依赖反转(DIP)、控制反转(Ioc)、依赖注入(DI)
vue+.netcore可支持业务代码扩展的开发框架 VOL.Vue 2.0版本发布
网友评论