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

 1 #region 递归--返回  父级|子级 名称
 2 
 3         #region --返回  父级|子级 名称
 4         public string RetrurnTypeNames(string TypeId)
 5         {
 6             StringBuilder builder = new StringBuilder();
 7             return GetParents(TypeId, builder);
 8         } 
 9         #endregion
10 
11         #region 递归 由子级id,返回子级和父级的Name
12         public string GetParents(string TypeId, StringBuilder builder)
13         {
14             var list = knowledge_TypeIBLL.GetListWhere(null, null) as List<knowledge_Type>;
15             var result = list.Where(m => m.Id == TypeId).ToList();
16             if (result.Count() > 0 && result[0].ParentId != null && result[0].ParentId.ToString() != " ")
17             {
18                 if (result[0].ParentId.ToString() == "-1")
19                 {
20                     builder.Append(result[0].TypeName + "|");
21                 }
22                 else
23                 {
24                     builder.Append(result[0].TypeName + "|");
25                     GetParents(result[0].ParentId, builder);
26                 }
27             }
28             var arrays = builder.ToString().Split('|').ToArray();
29             arrays = arrays.Where(s => !string.IsNullOrEmpty(s) && s.ToString() != " ").ToArray();
30             var builder1 = new StringBuilder();
31             for (int i = arrays.Count(); i > 0; i--)
32             {
33                 var ul = "";
34                 var t = i - 1;
35                 if (t >= 0)
36                 {
37                     ul += arrays.ToList()[t] + " | ";
38                     builder1.Append(ul);
39                 }
40             }
41             return builder1.ToString();
42         }  
43         #endregion
44 
45         #endregion

View Code

 1 var list = xxx_xxx_DetailIBLL.GetListWhere(where, sqlParams.ToArray()) as List<DetailView>;
 2             var result = (from item in list
 3                           select new DetailView
 4                           {
 5                               Id = item.Id,
 6                               MasterScore = item.MasterScore,
 7                               Question = item.Question,
 8                               TypeId = item.TypeId,
 9                               TypeName = RetrurnTypeNames(item.TypeId),
10                               UserId = item.UserId,
11                               UserScore = item.UserScore,
12                               knowledgeDataId = item.knowledgeDataId,
13                               knowledgeReviewId = item.knowledgeReviewId
14                           }).ToList();
15 
16  public class DetailView
17     {
18         public string Id { get; set; }
19         public string MasterScore { get; set; }
20         public string Question { get; set; }
21         public string TypeId { get; set; }
22         public string TypeName { get; set; }
23         public string UserId { get; set; }
24         public string UserScore { get; set; }
25         public string knowledgeDataId { get; set; }
26         public string knowledgeReviewId { get; set; }
27 
28     }

View Code

 

Tags: