4using System.Threading.Tasks;
17 private readonly Dictionary<Type, ObjectProperties> propertiesX =
new Dictionary<Type, ObjectProperties>();
18 private readonly Dictionary<Type, ObjectProperties> propertiesY =
new Dictionary<Type, ObjectProperties>();
19 private readonly KeyValuePair<ScriptNode, bool>[] order;
22 private IEnumerator<object> e =
null;
33 this.items = ItemEnumerator;
66 List<object> Items =
new List<object>();
68 while (await this.items.MoveNextAsync())
69 Items.Add(this.items.Current);
83 Type Tx = x.GetType();
84 Type Ty = y.GetType();
90 Vx = new ObjectProperties(x, this.variables);
91 this.propertiesX[Tx] = Vx;
98 Vy = new ObjectProperties(y, this.variables);
99 this.propertiesY[Ty] = Vy;
102 int i, j, c =
this.order.Length;
106 for (i = 0; i < c; i++)
108 Node = this.order[i].Key;
109 Ex = Node.Evaluate(Vx);
110 Ey = Node.Evaluate(Vy);
115 j = S.Compare(Ex, Ey);
118 if (this.order[i].Value)
128 this.e = Items.GetEnumerator();
131 return this.e.MoveNext();
Script runtime exception.
Base class for all nodes in a parsed script tree.
Enumerator that reorders a sequence of items.
void Reset()
IEnumerator.Reset
void Dispose()
IDisposable.Dispose
CustomOrderEnumerator(IResultSetEnumerator ItemEnumerator, Variables Variables, KeyValuePair< ScriptNode, bool >[] Order)
Enumerator that reorders a sequence of items.
async Task< bool > MoveNextAsync()
IEnumerator.MoveNext
bool MoveNext()
IEnumerator.MoveNext
object Current
IEnumerator.Current
Basic interface for all types of elements.
ISet AssociatedSet
Associated Set.
Basic interface for ordered sets.
Interface for result-set enumerators.