小编Sne*_*thy的帖子

多级父子排序

我有一个项目清单

  • ID名称ParentID
  • 1 abc 0(level1)
  • 2 def 1
  • 3 ghi 1
  • 4 jkl 0
  • 5分钟2
  • 6 pqr 5
  • 7 aaa 1
  • 8 vwx 0

我希望列表排序为

abc,aaa,def,mno,ghi,jkl,vwx,

这就是我想要的父(升序名称的顺序),其子女(以名称的升序),儿童subchildren(孩子的升序),并以此类推,直到最后一个级别,然后再父.我有

sections = new List<section>( from section in sections
                     group section by section.ParentID into children
                     orderby children.Key
                     from childSection in children.OrderBy(child => child.Name)
                     select childSection);
Run Code Online (Sandbox Code Playgroud)

但将列表排序为abc,jkl,vwx,aaa,def,ghi,mno,pqr

任何人都可以让我知道我哪里出错了.

c# linq asp.net hierarchical-data

4
推荐指数
1
解决办法
4025
查看次数

如何关闭已在目录中打开的文件

我试图解析一个文件夹并删除其中的所有文件.

DirectoryInfo dir = new DirectoryInfo("C\\Temp");
if (dir.GetDirectories().Any(p => p.Name == "\\NewTemp"))
{
    foreach (string file in Directory.GetFiles(dir + "\\NewTemp"))
    {
        File.SetAttributes(file, FileAttributes.Normal);
        File.Delete(file);
    }
}
Run Code Online (Sandbox Code Playgroud)

此代码工作正常并删除我的\ NewTemp文件夹中的所有文件.但是如果打开任何文件,那么这些文件将不会被删除.我想要先关闭打开的文件并删除它们.我甚至试过了

foreach (string file in Directory.GetFiles(dir + "\\NewTemp"))
{
    TextReader tr = new StreamReader(dir+"\\NewTemp\\"+file);
    tr.Close();
    File.SetAttributes(file, FileAttributes.Normal);
    File.Delete(file);
}
Run Code Online (Sandbox Code Playgroud)

但没用.请告诉我我失踪的地方.

c# directory file delete-file

4
推荐指数
1
解决办法
1万
查看次数

标签 统计

c# ×2

asp.net ×1

delete-file ×1

directory ×1

file ×1

hierarchical-data ×1

linq ×1