DirectoryInfo di = new DirectoryInfo("d:\\mytest");
            DirectoryInfo[] diA = di.GetDirectories();
diA得到的是一个文件目录的数组,并且这些文件的顺序是按照字母的升序排序,比如是:dA,dB,dC的目录
我想将diA按照一个事先定好的规则排,比如排成dA,dC,dB
请问如何实现

解决方案 »

  1.   

    事先定好的规则是什么规则?
    你可以自己实现ICompare接口,里面定义自己的规则,或是写Comparison委托的实现来定义规则。
      

  2.   

    会读取一个xml文件里面列出最后出来的顺序
      

  3.   

    那如果某个不在xml中,新增加的怎么办?
      

  4.   

    如果一定存在,我不知道你还读取文件列表干嘛。直接读取xml文件不就可以了?
      

  5.   

    直接读取XML,将每次读取出来的值x拿来和diA集合进行比较:
    如果diA中存在X,那么直接将X列出来;如果不存在,跳到下一个xml元素进行读取。(XML文件中已经存在顺序了)
      

  6.   

    取出来的数组,存到一个collection里(根据需要选择)。
    然后任何事情都随你了。数组排序应该是基础吧。
      

  7.   


                DirectoryInfo di = new DirectoryInfo("d:\\mytest");
                DirectoryInfo[] diA = di.GetDirectories();
                ArrayList arrlist = new ArrayList((Array)diA.Clone());
                arrlist.Sort(...); 写你的排序规则
      

  8.   

    這個需要先定義排序規則吧?
    no rule , no game ..
      

  9.   

    一个偷懒的办法,既然xml里面有所有的目录,而且已经排好序的,那就直接循环xml里面的目录,判断每一个节点是否存在(在diA里面有),如果有存在,就输出这个目录,循环判断完成,你需要的排序好的目录也有了结果,就是效率比较低(循环xml里面的数据,如果很多,而实际的目录很少,那就白做很多判断)。