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:
- C#
// Get all NavigationItems with names starting with A.
ObjectList ol = Dynamix.Object.PropertySearchAnd(
new PropSearch.Type( typeof( NavigationItem ) ),
new PropSearch.TextLike( NavigationItem.p_Name, "A%" )
);
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:
- C#
// Sort a list of NavigationItemss using a property-comparer
items.Sort( Dynamix.NavigationItem.p_Name.AscendingComparer );
// Sort a list of Users using a composite property-comparer
items.Sort(
new Dynamix.CompositeComparer(
Dynamix.User.p_LastName.AscendingComparer,
Dynamix.User.p_FirstName.AscendingComparer
)
);
// Sort a list using a custom-comparer
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.