草庐IT

非递归

全部标签

c# - C#迭代器中的递归

是否可以在实现System.Collections.IEnumerable的迭代器中使用递归?我有一个大致如下声明的树结构:publicclassNode{publicNodeSibling;publicNodeChild;}我想遍历树中的节点。我想做这样的事情(伪代码,我想这不会编译):publicclassNodeIterator:System.Collections.IEnumerable{Nodem_root;publicSystem.Collections.IEnumeratorGetEnumerator(){recursiveYield(m_root);}System.Co

c# - TreeView、HierarchicalDataTemplate 和递归数据

对于我的TreeView,我有两个提供ItemsSource的不同类。publicclassTreeViewModel:ViewModelBase{publicObservableCollectionItems{get;set;}}publicclassNodeViewModel:ViewModelBase{publicstringId{get;set;}publicstringName{get;set;}publicObservableCollectionChildren{get;set;}}现在我希望我的TreeView显示TreeViewModel中的项目并显示NodeViewM

c# - 将所有 child 放到一个列表中 - 递归 C#

C#|.NET4.5|EntityFramework5我在EntityFramework中有一个类,如下所示:publicclassLocation{publiclongID{get;set;}publiclongParentID{get;set;}publicListChildren{get;set;}}ID是位置的标识符,ParentID将其链接到父位置,而Children包含父位置的所有子位置。我正在寻找一种简单的方法,可能是递归的,将所有“位置”及其子项都放到一个包含Location.ID的列表中。我在递归地概念化这个问题时遇到了麻烦。感谢您的帮助。这是我目前所拥有的,它是对实

c# - 递归 LINQ 调用

我正在尝试构建一些具有父子关系但在同一个表中的数据的XML树。两个重要的领域是竞赛编号ParentCompetitionID一些数据可能是CompetitionID=1,ParentCompetitionID=nullCompetitionID=2,ParentCompetitionID=1CompetitionID=3,ParentCompetitionID=1我的损坏查询只是以平面格式显示结果。看到我正在使用XML,需要某种递归功能。我可以使用普通的for循环递归来做到这一点,但我想看看linq版本。任何帮助表示赞赏。varresults=fromc1incompsselectne

C# ReaderWriterLockSlim 避免递归的最佳实践

我有一节课使用ReaderWriterLockSlim具有一个读取方法和一个写入方法,该方法使用读取方法检索要修改的元素。一个简单的例子是:classFooLocker{ReaderWriterLockSlimlocker=newReaderWriterLockSlim();ListfooList=newList();publicvoidChangeFoo(intindex,stringbar){locker.EnterWriteLock();try{Foofoo=GetFoo(index);foo.Bar=bar;}finally{locker.ExitWriteLock();}}p

c# - C#递归删除文件和目录

如何在C#中递归删除给定的目录?包含文件的目录。应该System.IO.Directory.Delete使用第二个参数true可以解决问题吗?编辑:所以,我实际上确实回答了我自己的问题,尽管这里的答案更清楚一些。我首先问这个问题的原因是调用Delete的代码(第二个参数设置为true)没有做它应该做的事情正在做。事实证明,这是因为在目录层次结构的下方某处有一个文件设置了RO属性,并且Polish版本的WindowsXP为此发出了一条非常奇怪的消息。 最佳答案 如果子目录也包含文件,唯一对我有用的解决方案是使用递归函数:publics

c# - 如何执行完整的递归目录和文件扫描?

这是我的代码:privatestaticvoidTreeScan(stringsDir){foreach(stringdinDirectory.GetDirectories(sDir)){foreach(stringfinDirectory.GetFiles(d)){//Savefilef}}TreeScan(d,client);}问题是它没有获取sDir(起始目录)的FILES它只获取文件夹和文件在子文件夹中。如何让它也从sDir获取文件? 最佳答案 不要重新发明轮子,使用GetFiles的重载,允许您指定它搜索子目录。strin

c# - 在 C# 中递归复制内容的最佳方法是什么?

使用C#和ASP.NET将一个文件夹的内容递归复制到另一个文件夹的最佳方法是什么? 最佳答案 你可以试试这个DirectoryInfosourcedinfo=newDirectoryInfo(@"E:\source");DirectoryInfodestinfo=newDirectoryInfo(@"E:\destination");copy.CopyAll(sourcedinfo,destinfo);这是完成所有工作的方法:publicvoidCopyAll(DirectoryInfosource,DirectoryInfotar

c# - linq to sql递归查询

EmployeeIdNameManagerId------------------------------1Anull2Bnull3C14D35E2就用这张表,怎么写个linq查询(用linqtosql)递归取父数据。例如,如果选择的雇主ID为4,则应给出ID为4、3、1的员工列表谢谢。 最佳答案 这个.AsHierarchy()扩展方法可能有用:link.但是,这只能通过提供一种将结果放入链接对象的简单方法来实现。为此,它只会获取所有记录并运行自己的本地递归查询。如果您正在寻找将通过LINQtoSQL直接转换为递归SQL查询的LI

c# - 使用 lock 语句在 C# 中递归/嵌套锁定

这个问题在这里已经有了答案:关闭12年前。PossibleDuplicate:Re-entrantlocksinC#我在StackOverflow和MSDN上看过这里,不敢相信我在互联网上找不到这个问题。假设我有一个包含私有(private)成员的类,我想通过多个公共(public)方法访问该成员。这些公共(public)方法将被不同的线程调用,因此需要同步。publicclassMyClass{privateObjectSomeSharedData=newObject();publicvoidMethodA(){lock(SomeSharedData){//dosomethingMe