多级ArrayList提取

Gre*_*row 0 c# arraylist

我有一个包含字符串的ArrayList,还包含其他可能包含字符串或更多ArrayLists的ArrayLists.

有没有一种简单的方法从这个多级ArrayList中提取所有字符串?

我假设一些递归是受宠的,但我无法让它工作.

Meh*_*ari 5

public static ArrayList FlattenList(ArrayList list) {
   ArrayList l = new ArrayList(); 
   FillList(list, l);
   return l;
}
private static void FillList(ArrayList source, ArrayList listToFill) {
   foreach (object o in source) {
      ArrayList l = o as ArrayList;
      if (l != null)
          FillList(l, listToFill);
      else
          listToFill.Add(o);
   }
}
Run Code Online (Sandbox Code Playgroud)