Tag: 递归

使用递归函数遍历XML

如何使用c#中的递归函数遍历(按顺序读取所有节点)XML文档? 我想要的是读取xml中的所有节点(具有属性)并以与xml相同的结构打印它们(但没有Node Localname) 谢谢

在所有子目录中查找具有特定扩展名的文件数

有没有办法找到特定类型的文件数,而无需在Directory.GetFiles()或类似方法中循环遍历所有结果? 我正在寻找这样的东西: int ComponentCount = MagicFindFileCount(@”c:\windows\system32″, “*.dll”); 我知道我可以创建一个递归函数来调用Directory.GetFiles,但是如果我可以在没有所有迭代的情况下执行此操作,那将会更加清晰。 编辑:如果没有递归和迭代自己不可能做到这一点,那么最好的方法是什么?

在LINQ中表达递归

我正在为一个分层数据源编写一个LINQ提供程序。 我发现通过编写显示我想如何使用它的示例来设计我的API最简单,然后编写代码以支持这些用例。 我遇到麻烦的一件事是在LINQ语句中表达“深度查询”或递归的简单/可重用/优雅方式。 换句话说,区分以下内容的最佳方法是: from item in immediate-descendants-of-current-node where … select item 与: from item in all-descendants-of-current-node where … select item ( 编辑:请注意上面这些例子都不一定反映我想要的查询结构。我感兴趣的是表达递归/深度的任何好方法 ) 请注意我不是问如何实现这样的提供程序,或者如何以允许递归的方式编写我的IQueryable或IEnumerable。 我是从一个人编写LINQ查询并利用我的提供者的角度问的 – 他们表达是否想要递归的直观方式是什么? 数据结构类似于典型的文件系统:文件夹可以包含子文件夹的集合,文件夹也可以包含项集合。 所以myFolder.Folders表示myFolder的直接子节点的所有文件夹,myFolder.Items包含myFolder中的所有项目。 这是网站层次结构的基本示例,非常类似于包含文件夹和页面的文件系统: (F)Products (F)Light Trucks (F)Z150 (I)Pictures (I)Specs (I)Reviews (F)Z250 (I)Pictures (I)Specs (I)Reviews (F)Z350 (I)Pictures (I)Specs (I)Reviews (I)Splash Page (F)Heavy Trucks (F)Consumer Vehicles (I)Overview 如果我写: from […]

递归获取类的属性和子属性

我正在做一些像递归获取对象的属性和子属性的东西,但我想递归地使用reflection来获取每个属性。 我从Recursively打印属性的代码。 代码的问题是:它只降低了一级,我想知道如何使用reflection自动获取所有属性? 我刚刚编写了以下示例Container代码: public class Container { public Bottle MyBottle { get; set; } public List Addresses { get; set; } public Container() { Address a = new Address(); a.AddressLine1 = “1 Main St”; a.AddressLine2 = “2 Main St”; Addresses = new List(); Addresses.Add(a); MyBottle = new Bottle(); MyBottle.BottleName = “Big bottle”; MyBottle.BottageAge = […]

ASP.NET中的递归TreeView

我有一个类型列表的对象,我希望用它来填充asp.net c#中的树视图。 每个对象项都有: id | Name | ParentId 例如: id | Name | ParentId ————————- 1 | Alice | 0 2 | Bob | 1 3 | Charlie | 1 4 | David | 2 在上面的例子中,父母将是Alice有两个孩子Bob和Charlie。 大卫是鲍勃的孩子。 我试图在c#ASP.NET中递归地动态填充树视图时遇到了很多问题 有没有人有一个简单的解决方案? 顺便说一句:您可以使用People.Id,People.Name和People.ParentId来访问成员,因为它是属于list的对象。 到目前为止,我可以发布我的代码(许多尝试),但不确定它会有多大用处。

C#:使用Lambdas的递归函数

以下不编译: Func fac = n => (n <= 1) ? 1 : n * fac(n – 1); 在访问之前,可能不会初始化局部变量’fac’ 你怎么能用lambdas做一个递归函数? [更新] 这里还有两个我觉得有趣的链接: Eric Lippert的“为什么递归lambda导致明确的赋值错误?” C#中的匿名递归

递归LINQ查询:选择项目和所有子项的子项

有没有办法编写LINQ(或程序样式)查询,可以选择一个项目和一个查询的所有子项? 我有实体: public class Comment { public int Id {get;set;} public int ParentId {get;set;} public int Text {get;set;} } 我有一个ID,所以我想选择带ID的评论及其所有孩子和子女。 例: 1 -2 –3 -4 -5 –6 2 3 如果ID == 1,那么我想要1,2,3,4,5,6的列表。