在我多年的编程中,我已经使用递归来解决简单的问题,但我完全清楚,有时你需要迭代,因为内存/速度问题.
所以,在很久以前的某个时候,我去尝试找出是否存在任何"模式"或文本书的方式将常见的递归方法转换为迭代而没有发现任何东西.或者至少我记不住任何事都会有所帮助.
所以我有简单的树:
class MyNode
{
public MyNode Parent;
public IEnumerable<MyNode> Elements;
int group = 1;
}
Run Code Online (Sandbox Code Playgroud)
我有一个IEnumerable<MyNode>.我想得到一个列表MyNode(包括内部节点对象(Elements))作为一个平面列表Where group == 1.如何通过LINQ做这样的事情?
我有一个方法将遍历文件夹及其所有子文件夹并获取文件路径列表.但是,我只能弄清楚如何创建它并将文件添加到公共列表,而不是如何返回列表.这是方法:
public List<String> files = new List<String>();
private void DirSearch(string sDir)
{
try
{
foreach (string f in Directory.GetFiles(sDir))
{
files.Add(f);
}
foreach (string d in Directory.GetDirectories(sDir))
{
DirSearch(d);
}
}
catch (System.Exception excpt)
{
MessageBox.Show(excpt.Message);
}
}
Run Code Online (Sandbox Code Playgroud)
所以,我只是DirSearch()在我的代码中调用某个点并用路径"填充"列表,但我希望能够多次使用它来创建具有不同目录的不同列表等.
在我的硬盘驱动器的特定文件夹中,我已经存储了许多其他子文件夹和文件.现在我想按部分名称列出这些文件夹和文件名.
for example
--------------
c webapi xx folder
c mvctutorial xx folder
done webapi xx folder
webapi done folder
webapi.zip file
mvc.iso file
Run Code Online (Sandbox Code Playgroud)
现在,当我想通过部分名称webapi搜索,然后我想获得具有webapi字的文件和文件夹名称列表.我想在网格中显示他们的完整文件夹或文件名及其完整路径和大小.喜欢以下方式.
Name Type location Size
----- ------ --------- -------
c webapi xx folder c:\test1 2 KB
c mvctutorial xx folder c:\test3 3 KB
done webapi xx folder c:\test1 11 KB
webapi done folder c:\test1 9 KB
webapi.zip file c:\test1 20 KB
mvc.iso file c:\test4 5 KB
Run Code Online (Sandbox Code Playgroud)
我有一个示例代码,看起来像查找文件,但下面的代码可能找不到文件夹.所以我正在寻找一个可以找到文件和文件夹的示例代码.所以指导我解决我的问题.
下面的示例代码将查找文件,但不确定它是否按部分名称查找文件.这是代码.我不是在开发环境之前.所以无法测试下面的代码.
static void Main(string[] args)
{
string …Run Code Online (Sandbox Code Playgroud)