public static bool IsEqual(TListDateTime AList1, TListDateTime AList2)
    {
        if (AList1 == null && AList2 == null) return true;
        if (AList1 == null || AList2 == null) return false;

        return AList1.Equals(AList2);
    }
    public static IEnumerable Enum(TListDateTime AList)
    {
        if(AList == null) yield break;

        Int32 LIndex = 0;
        foreach(DateTime LKey in AList.FList)
        {
          yield return new KeyValuePair<DateTime,Int32>(LKey, ++LIndex);
        }
    }
    public static TListDateTime Parse(SqlString AString)
    {
        if (AString.IsNull) return null;

        TListDateTime LResult = new TListDateTime();
        LResult.FromString(AString.Value);

        return LResult;
    }
 public void Read(System.IO.BinaryReader r)
 {
     //if (r == null) throw new ArgumentNullException("r");
     if(OResult == null)
       OResult = new TListDateTime();
     OResult.Read(r);
 }
 public void Init()
 {
     OResult = new TListDateTime();
 }
    public bool Equals(TListDateTime AList)
    {
        if(AList == null || FList.Count != AList.FList.Count)
          return false;

        for(int i = FList.Count - 1; i >= 0; i--)
          if(FList[i] != AList.FList[i])
        return false;

        return true;
    }
 public Boolean ContainsAll(TListDateTime AValue)
 {
     if(AValue == null || AValue.FList.Count == 0)
       return true;
     for(int i = AValue.FList.Count - 1; i >= 0; i--)
       if(!FList.Contains(AValue.FList[i]))
     return false;
     return true;
 }