以下のようなリスト list1,list2がある場合に、list1とlist2の要素の値を比較し、一致していない要素をlist1に格納するという処理を実現したいと考えています。

要素配列の比較の仕方を工夫したいと考えているのですが
.NET Framework 2.0での開発になりますので、IStructuralEquatable.Equalsメソッドを利用して配列の比較を行うことができません。
リストの要素ごとのループに加えて配列の中身もループさせて比較していくような方法以外に
安全で高速に配列同士を比較する方法はないでしょうか?
初歩的な内容で申し訳ありませんが、よろしくお願いいたします。

          //1つめのリスト list1
          string[] ary1_list1 = new string[] { "1", "1" };
          string[] ary2_list1 = new string[] { "1", "2" };

          List<String[]> list1  = new List<string[]>();
          list1.Add(ary1_list1);
          list1.Add(ary2_list1);


          //2つめのリスト list2
          List<String[]> list2  = new List<string[]>();

          string[] ary1_list2 = new string[] { "1", "1" };
          string[] ary2_list2 = new string[] { "1", "3" };
          string[] ary3_list2 = new string[] { "1", "5" };
          string[] ary4_list2 = new string[] { "1", "7" };
          string[] ary5_list2 = new string[] { "2", "2" };
          string[] ary6_list2 = new string[] { "2", "4" };
          list2.Add(ary1_list2);
          list2.Add(ary2_list2);
          list2.Add(ary3_list2);
          list2.Add(ary4_list2);
          list2.Add(ary5_list2);
          list2.Add(ary6_list2);