Objektlistor, sökning och sortering

Klassen Dynamix.ObjectList kan användas för att lagra samlingar av objekt. Det går att lägga till och ta bort objekt ur listan med bl a funktionerna:

  • Add - lägg till objekt i listan

  • AddNonDuplicate/AddNonDuplicates - lägg till ett objekt om det inte redan finns i listan

  • AddNonDuplicates( ... ) - lägg till objekt om de inte redan finns i listan

  • Remove

Objektsökning

Alla egenskaper som har definierats kan användas för sökningar med hjälp av PropSearch-funktionerna i Object:

  1. C#
  1. // Get all NavigationItems with names starting with A.
  2. ObjectList ol = Dynamix.Object.PropertySearchAnd(
  3. new PropSearch.Type( typeof( NavigationItem ) ),
  4. new PropSearch.TextLike( NavigationItem.p_Name, "A%" )
  5. );

 

I PropSearch finns ett antal sökvarianter:

  • PropSearch.Type - filtrera ut objekt av en viss typ.

  • PropSearch.Text - filtrera på textegenskap med exakt matchning (flera matchingsalternativ kan anges)

  • PropSearch.Int - filtera på heltalsegenskap

  • PropSearch.Bool - filtera på boolsk egenskap

  • PropSearch.TextLike - filtrera på textegenskap med SQL-like (flera matchingsalternativ kan anges)

  • PropSearch.Object - filtrera på objektpekaregenskap

  • PropSearch.DateTimeRange - filtrera på datumegenskap

  • PropSearch.And - kombinera flera filter med AND-villkor

  • PropSearch.Or - kombinera flera filter med OR-villkor

Dynamix tillåter i princip fri kombinering av sökuttryck. I praktiken finns dock bara ett antal kombinationer implementerade.
Denna sida innehåller en lista på kombinationer som finns tillgängliga i olika versioner av Dynamix.

Sortering

Objektlistor kan också sorteras både med hjälp av inbyggda sorterare för egenskaper eller med egenutvecklade jämförelsefunktioner:

  1. C#
  1. // Sort a list of NavigationItemss using a property-comparer
  2. items.Sort( Dynamix.NavigationItem.p_Name.AscendingComparer );
  3. // Sort a list of Users using a composite property-comparer
  4. items.Sort(
  5. new Dynamix.CompositeComparer(
  6. Dynamix.User.p_LastName.AscendingComparer,
  7. Dynamix.User.p_FirstName.AscendingComparer
  8. )
  9. );
  10. // Sort a list using a custom-comparer
  11. items.Sort( new MyItemComparer() );

Listor som kommer ut ur PropSearch är inte skrivbara per default. Ange parametern readonly (se api:dokumentation) till false för att få en skrivbar lista, eller skapa en ny lista och lägg in de hämtade objekten i denna.