ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

C# 循环依赖,分片,聚类

2022-04-19 11:00:26  阅读:156  来源: 互联网

标签:C# solutionModel Projectrefs 聚类 A3 A1 Add A2 分片


 1   public static List<ProjectModel> While_ProjectRef(ProjectModel projectModel,SolutionModel solutionModel,
 2             List<ProjectModel> ProjectCrip)
 3         {
 4             List<ProjectModel> Self_Refs = new List<ProjectModel>();
 5             if(projectModel.Projectrefs.Count>0)
 6             {
 7                 foreach(var ProjectRef in projectModel.Projectrefs)
 8                 {
 9                     //对于每一个项目引用进行分析
10                     foreach (var project in solutionModel.Projects)
11                     {
12                         //寻找项目引用的projecta
13                         if (project.Name == ProjectRef.Name)
14                         {
15                             //如果已经被分析过了,那么就不再分析这个子引用
16                             if (ProjectCrip.Contains(project))
17                                 break;
18                             ProjectCrip.Add(project);
19                             Self_Refs.Add(project);
20                             break;
21                         }
22                     }
23                 }
24                 foreach (var Project_ref in Self_Refs)
25                 {
26                     var child_project_ref=While_ProjectRef(Project_ref, solutionModel, ProjectCrip);
27                     ProjectCrip = ProjectCrip.Union(child_project_ref).ToList();
28                 }
29             }
30             return ProjectCrip;
31         }
32 
33 
34  static public void Main(string[] args)
35         {
36             SolutionModel solutionModel = new SolutionModel();
37             ProjectModel A1 = new ProjectModel();
38             A1.Name = "A1";
39             ProjectModel A2 = new ProjectModel();
40             A2.Name = "A2";
41             ProjectModel A3 = new ProjectModel();
42             A3.Name = "A3";
43             //Model1: A1-》A2-》A3
44             //A1.Projectrefs.Add(A2);
45             //A2.Projectrefs.Add(A3);
46             //Model2: A1-》A2-》A1
47             //A1.Projectrefs.Add(A2);
48             //A2.Projectrefs.Add(A1);
49             //Model3: A1-》A2-》A3->A1
50             //A1.Projectrefs.Add(A2);
51             //A2.Projectrefs.Add(A3);
52             //A2.Projectrefs.Add(A1);
53 
54             //Model4: A1-》A2-》A3->A1
55             //        A1->A3->A1
56             //A1.Projectrefs.Add(A2);
57             //A2.Projectrefs.Add(A3);
58             //A3.Projectrefs.Add(A1);
59 
60             //A1.Projectrefs.Add(A3);
61             //A3.Projectrefs.Add(A1);
62             //Model5: A1-》A1
63             A1.Projectrefs.Add(A1);
64 
65 
66             solutionModel.Projects.Add(A1);
67             solutionModel.Projects.Add(A2);
68             solutionModel.Projects.Add(A3);
69 
70             List<ProjectModel> result=new List<ProjectModel> ();
71             result = While_ProjectRef(A1, solutionModel, result);
72             if(!result.Contains(A1))
73                 result.Add(A1);
74             Console.ReadKey();
75         }

 

标签:C#,solutionModel,Projectrefs,聚类,A3,A1,Add,A2,分片
来源: https://www.cnblogs.com/smartisn/p/16164223.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有