递归方式---通过子级id,获取子级和父级Name

#region 递归--返回 父级|子级 名称
#region --返回 父级|子级 名称
public string RetrurnTypeNames(string TypeId)
{
StringBuilder builder = new StringBuilder();
return GetParents(TypeId, builder);
}
#endregion
#region 递归 由子级id,返回子级和父级的Name
public string GetParents(string TypeId, StringBuilder builder)
{
var list = knowledge_TypeIBLL.GetListWhere(null, null) as List<knowledge_Type>;
var result = list.Where(m => m.Id == TypeId).ToList();
if (result.Count() > && result[].ParentId != null && result[].ParentId.ToString() != " ")
{
if (result[].ParentId.ToString() == "-1")
{
builder.Append(result[].TypeName + "|");
}
else
{
builder.Append(result[].TypeName + "|");
GetParents(result[].ParentId, builder);
}
}
var arrays = builder.ToString().Split('|').ToArray();
arrays = arrays.Where(s => !string.IsNullOrEmpty(s) && s.ToString() != " ").ToArray();
var builder1 = new StringBuilder();
for (int i = arrays.Count(); i > ; i--)
{
var ul = "";
var t = i - ;
if (t >= )
{
ul += arrays.ToList()[t] + " | ";
builder1.Append(ul);
}
}
return builder1.ToString();
}
#endregion
#endregion

var list = xxx_xxx_DetailIBLL.GetListWhere(where, sqlParams.ToArray()) as List<DetailView>;
var result = (from item in list
select new DetailView
{
Id = item.Id,
MasterScore = item.MasterScore,
Question = item.Question,
TypeId = item.TypeId,
TypeName = RetrurnTypeNames(item.TypeId),
UserId = item.UserId,
UserScore = item.UserScore,
knowledgeDataId = item.knowledgeDataId,
knowledgeReviewId = item.knowledgeReviewId
}).ToList(); public class DetailView
{
public string Id { get; set; }
public string MasterScore { get; set; }
public string Question { get; set; }
public string TypeId { get; set; }
public string TypeName { get; set; }
public string UserId { get; set; }
public string UserScore { get; set; }
public string knowledgeDataId { get; set; }
public string knowledgeReviewId { get; set; } }
递归方式---通过子级id,获取子级和父级Name的更多相关文章
- 通过父级id获取到其下所有子级(无穷级)——Mysql函数实现
[需求]某用户只能查看其自己信息及其下级信息,涉及通过该用户所在部门获取其下所有部门(多层)id集合. 步骤一:对数据库进行设置: set global log_bin_trust_function_ ...
- Jquery遍历之获取子级元素、同级元素和父级元素
Jquery遍历之获取子级元素.同级元素和父级元素 Jquery的遍历,其实就当前位置的元素相对于其他元素的位置的关系进行查找或选取HTML元素.以某项选择开始,并沿着这条线进行移动,或向上(父级). ...
- margin传递,子元素的上下margin会传递给父级
<!doctype html> <html> <head> <meta charset="utf-8"> <title> ...
- 解决子级用css float浮动 而父级div没高度不能自适应高度
解决子级对象使用css float浮动 而父级div不能自适应高度,不能被父级内容撑开解决方法,父级div没有高度解决方法. 最外层的父级DIV不能自适应高度-不能随对象撑开没有高度 当在对象内的盒子 ...
- CSS| 解决子级用css float浮动 而父级div没高度不能自适应高度
解决子级用css float浮动 而父级div没高度不能自适应高度 解决子级对象使用css float浮动 而父级div不能自适应高度,不能被父级内容撑开解决方法,父级div没有高度解决方法. 最外层 ...
- 子级用css float浮动 而父级不能自适应高度解决方法
解决子级对象使用css float浮动 而父级div不能自适应高度,不能被父级内容撑开解决方法,父级div没有高度解决方法. 当在对象内的盒子使用了float后,导致对象本身不能被撑开自适应高度,这个 ...
- java list根据id获取子节点
工作中因业务需求,将数据库中的树状结构的数据根据父节点获取所有的子节点 实现思路 1.获取整个数据的list集合数据 2.将数据分组,java8 list有groupby分组,java8之前的自己遍历 ...
- MySQL通过自定义函数实现递归查询父级ID或者子级ID
背 景: 在MySQL中如果是有限的层次,比如我们事先如果可以确定这个树的最大深度, 那么所有节点为根的树的深度均不会超过树的最大深度,则我们可以直接通过left join来实现. 但很多时候我们是无 ...
- 子级用css float浮动 而父级div没高度不能自适应高度
子级对象使用css float浮动 而父级div不能自适应高度. 对父级div标签闭合</div>前加一个clear清除浮动对象. <!DOCTYPE html> <ht ...
- 页面单击按钮弹出modaldialog然后调用ajax处理程序获取数据,给父级页面控件赋值
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="RefTopicList.asp ...
随机推荐
- Redis服务之Redis Cluster
在上一篇博客中我们聊到了redis的高可用组件sentinel的相关配置,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/13429776.html:sentin ...
- java_内部类、匿名内部类的使用
内部类 将一个类A定义在另一个类B里面,里面的那个类A就称为内部类,B则称为外部类. 内部类的分类 成员内部类,类定义在了成员位置 (类中方法外称为成员位置) 局部内部类,类定义在方法内 成员内部类 ...
- C#LeetCode刷题之#859-亲密字符串(Buddy Strings)
问题 该文章的最新版本已迁移至个人博客[比特飞],单击链接 https://www.byteflying.com/archives/3973 访问. 给定两个由小写字母构成的字符串 A 和 B ,只要 ...
- C#LeetCode刷题之#697-数组的度( Degree of an Array)
问题 该文章的最新版本已迁移至个人博客[比特飞],单击链接 https://www.byteflying.com/archives/3738 访问. 给定一个非空且只包含非负数的整数数组 nums, ...
- Kafka2.6.0发布——性能大幅提升
近日Kafka2.6版本发布,距离2.5.0发布只过去了不到四个月的时间. Kafka 2.6.0包含许多重要的新功能.以下是一些重要更改的摘要: 默认情况下,已为Java 11或更高版本启用TLSv ...
- Python对list操作的一些小技巧
Python对list操作的一些小技巧 由于要搞数学建模,于是从熟悉已久的C++转战Python.虽然才上手,但是Python的语法糖就让我大呼过瘾.不得不说相比于C/C++,Python对于数据的 ...
- Git常用命令参考手册
配置 # 查看全局配置列表 git config -l # 查看局部配置列表 git config --local --list # 查看已设置的全局用户名/邮箱 git config --globa ...
- centos7下安装docker与镜像加速
1.背景 centos7下安装docker 2.安装 第一步:检查是否为centos7版本 第二步:依赖环境安装 执行如下两个命令: yum -y install gcc yum -y install ...
- C++开发时字符编码的选择
最近看了很多有关字符编码的讨论帖子, 自己也做了很多尝试, 针对linux和windows上字符编码的选择做了个简单整理, 在此做个记录 首先是基础编码知识, 下面我列出的4个编码方式或字符集是我们应 ...
- JavaScript学习系列博客_32_JavaScript 包装类
包装类 - 在JS中为我们提供了三个包装类: String() Boolean() Number() - 通过这三个包装类可以创建基本数据类型的对象 例子: var num = new Number( ...