Jelajahi Sumber

Fixed bug in filter combining

Kenric Nugteren 1 tahun lalu
induk
melakukan
64c4976608
1 mengubah file dengan 20 tambahan dan 9 penghapusan
  1. 20 9
      InABox.Core/Filter.cs

+ 20 - 9
InABox.Core/Filter.cs

@@ -1824,19 +1824,30 @@ namespace InABox.Core
 
         public Filter<T>? Combine()
         {
-            Filter<T>? result = null;
-            foreach (var filter in filters)
+            if(filters.Count == 0)
+            {
+                return null;
+            }
+            else if(filters.Count == 1)
             {
-                if (filter != null)
+                return filters[0];
+            }
+            else
+            {
+                var result = new Filter<T>().All();
+                foreach (var filter in filters)
                 {
-                    if (result is null)
-                        result = filter;
-                    else
-                        result.Ands.Add(filter);
+                    if (filter != null)
+                    {
+                        if (result is null)
+                            result = filter;
+                        else
+                            result.Ands.Add(filter);
+                    }
                 }
-            }
 
-            return result;
+                return result;
+            }
         }
 
         public static Filter<T>? Combine(params Filter<T>[] filters)