In.cs 747 B

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. //
  2. // In.cs
  3. //
  4. // Author:
  5. // Juraj Skripsky ([email protected])
  6. //
  7. // (C) 2004 HotFeet GmbH (http://www.hotfeet.ch)
  8. //
  9. using System;
  10. using System.Collections;
  11. using System.Data;
  12. namespace Mono.Data.SqlExpressions {
  13. public class In : UnaryExpression {
  14. IList set;
  15. public In(IExpression e, IList set) : base (e)
  16. {
  17. this.set = set;
  18. }
  19. override public object Eval (DataRow row)
  20. {
  21. IComparable val = (IComparable)expr.Eval (row);
  22. if (val == null)
  23. return false;
  24. foreach (IExpression e in set) {
  25. IComparable setItem = (IComparable)e.Eval (row);
  26. if (setItem == null)
  27. continue;
  28. if (Comparison.Compare (val, setItem, row.Table.CaseSensitive) == 0)
  29. return true;
  30. }
  31. return false;
  32. }
  33. }
  34. }