草庐IT

树和树的遍历

全部标签

c# - 在 C# 中遍历 XML 树

我是.net和c#的新手,所以我想确保我使用的是正确的工具。我收到的XML是对另一台机器上目录树的描述,因此它有很多层次。我现在需要做的是获取XML并创建一个对象结构(自定义类)并使用来自XML输入的信息填充它们,例如文件、文件夹、标签、属性...在我看来,此XML输入的树结构使其成为使用递归遍历树的主要候选对象。在.net3.5中有不同的方法吗?我查看了XmlReaders,但它们似乎以线性方式遍历树,这并不是我真正想要的...我收到的XML是第3方API的一部分,因此不在我的控制范围内,并且将来可能会发生变化。我研究了反序列化,但它的缺点(黑盒实现,需要将成员声明为公共(publi

c# - 在 WPF 中循环遍历 StackPanel 子项

我有一个充满控件的StackPanel,我试图遍历元素并获取它们的名称,但似乎我需要将每个元素转换为它的类型才能访问它的Name属性。但是如果我在StackPanel中有很多不同的类型并且我只想获取元素名称怎么办?有更好的方法吗?这是我尝试过的:foreach(objectchildintab.Children){UnregisterName(child.Name);} 最佳答案 转换到正确的基类应该就足够了。从FrameworkElement派生的所有内容都有一个Name属性。foreach(objectchildintab.Ch

c# - 使用 IEnumerator 遍历列表

假设我有一个员工实例列表,employeeList.我可以像这样遍历它们:IEnumeratorenumerator=employeeList.GetEnumerator();while(enumerator.MoveNext()){Console.Write(enumerator.Current+"");}我有三个问题:我对枚举器的工作原理有一个大概的了解,就像C++中的迭代器一样。但我不明白MoveNext()方法(如C++中的itr++),因为该方法首先检查条件(是否在最后一个元素中)。假设我们使用enumerator.Current访问第一个元素:我认为它实际上已经“移动”到列

c# - 循环遍历 Razor 中的模型内容

我想在RazorView中遍历模型中的每个项目,但我想将所有项目组合在一起。然后我想遍历每个组。假设我有一张table:IDGroupNoGroupName11Group121Group231Group342Group152Group263Group56我想做这样的事情:@foreach(vargroupinModel.GroupNo){GroupNois@group.GroupNo@foreach(varitemingroup){GroupName:@item.GroupName}}所以我的输出是:GroupNois1GroupName:Group1GroupName:Group2G

c# - 如何反向遍历 C# 集合?

是否可以使用foreach语句以相反的顺序遍历Collections对象?如果不是foreach语句,还有别的方法吗? 最佳答案 您可以向后使用普通的for循环,如下所示:for(inti=collection.Count-1;i>=0;i--){varcurrent=collection[i];//Dothings}您还可以使用LINQ:foreach(varcurrentincollection.Reverse()){//Dothings}但是,普通的for循环可能会快一点。 关于c

c# - 循环遍历 GridView 行并检查复选框控件

我目前有一个GridView,它显示学生表中的数据,这是我的网格和关联的SQLDataSource;'runat="server">"SelectCommand="SELECT[StudentID],[Name]FROM[Student]WHERECourseID=@CourseID">我在页面上有一个按钮,当用户单击该按钮时,我需要遍历GridView中的每一行,然后找到复选框,然后我需要检查复选框是否被选中。如果选中该复选框,我需要将标签模板字段中的值添加到数据库中的不同表中。我正在使用C#代码。非常感谢任何帮助,提前致谢! 最佳答案

c# - 如何遍历 dacpac

我们希望将dbproj升级为sqlproj,以便我们可以将其指向新的SQL2012数据库。目前我们有一个程序可以读取.dbschemaxml文件以查找所有表和列并从中检索信息。我们使用这些数据来构建我们自己的自定义类。新的sqlproj文件现在生成一个dacpac,我们要查询它以获取我们需要的数据。我已经编写了以下内容来尝试遍历dacpac并获取我需要的信息:usingSystem;usingSystem.Collections.Generic;usingSystem.Linq;usingSystem.Text;usingSystem.Threading.Tasks;usingMicr

c# - 为多行 lambda 创建表达式树的 Roslyn 流畅语法

我正在编写一个基于Roslyn的自定义工具,试图根除CS0834通过在构建时将给定的多行lambda重写为表达式树。编辑:此时,我只针对匿名多行lambda。例如://WillproduceCS0834ifBartakesExpression>Foo.Bar((intx)=>{...});到Foo.Bar(Expression.Lambda>(Expression.Block(...),Expression.Parameter(typeof(int))));这样就可以正确编译了。虽然我可以弄清楚转换给定代码所需的Expression.(blah)语法,但使用Roslyn完成它完全是另一

c# - 我怎样才能遍历所有路线?

在mvc(2)用户控件中,我想遍历所有路由值。所以如果我有这样的Controller:UserControllerAccountController我需要一组将出现在url中的值,例如:/user/.../account/...即值用户、帐户。我怎样才能得到这个?我尝试了RouteTables但无法弄清楚。 最佳答案 哦,真是个好问题,可以让我自己忙上一个小时。为了实现所需的功能,我们需要连接到MVC源代码和一点反射。默认情况下,路由名称是不可用的,因此我们需要编写一个路由集合扩展,以将路由名称保存在RouteDatatoken中。

c# - 循环遍历目录

我一直在试图弄清楚如何打印出我存储在ASP/C#目录中的图像我找到了这个,但问题是它打印出C:\\VisualStudios2010\Projects\MyTestUploader\Files\img001.jpgstring[]fileEntries=Directory.GetFiles(sourceDir);foreach(stringfileNameinfileEntries){Label1.Text+="";}现在我只想简单地打印出目录中的所有图像。稍后我会担心如何很好地格式化它们:) 最佳答案 您可以使用Path.GetF