Skip to main content

Notifications

Announcements

No record found.

Business Central forum
Answered

get a unique collection of items

Posted on by

Hi Everyone

I have a case in which I need distinct Values from a list.

The common approach to get a unique collection of items is to use a set. Sets are unordered collections of distinct objects.

Is there a set method in AL ? If not, what would be the common approach ?

Thank you very much for your answer.

Categories:
  • Sleina Profile Picture
    Sleina on at
    RE: get a unique collection of items

    Thank you Ashish and Lars

    I actually used the List Type as follows:

    If ItemVariant.FindFirst() then begin

                               repeat

                                   Colorlist.add(ItemVariant.Farbe);

                               until ItemVariant.next = 0;

                           end;

                           //Check unique

                           For i := 1 to ColorList.Count do begin

                               ContainValue := ColorList.Get(i);

                               Result := IsUnique.Contains(ContainValue);

                               if Result = False then

                                   IsUnique.Add(ContainValue);

                           end;

    This worked, thank you both, now I know that I'm on the right way in order to get such values :)

  • Verified answer
    RE: get a unique collection of items

    +1 to Ashis' idea.

    I am not sure what a set is, but it sounds like a list which we have in BC, example:

    codeunit 50107 Test

    {

       trigger OnRun()

       begin

           customer.FindSet();

           repeat

               if not MyList.Contains(Customer.Name) then

                   MyList.Add(customer.Name);  

           until Customer.Next() = 0;

       end;

       var

           Customer: Record Customer;

           MyList: List of [text];

    }

    More about List datatype here:

    docs.microsoft.com/.../list-data-type

  • Verified answer
    Ashish0386 Profile Picture
    Ashish0386 75 on at
    RE: get a unique collection of items

    You can do it by writing some code

    Item.RESET;

    Item.SETCURRENTKEY("Name");

    IF item.FINDSET THEN REPEAT

    IF prevItemname = item.Name THEN

       Previtemname := item.Name;

    UNTIL(Item.NEXT=0);

    may be it can help

Under review

Thank you for your reply! To ensure a great experience for everyone, your content is awaiting approval by our Community Managers. Please check back later.

Helpful resources

Quick Links

Anton Venter – Community Spotlight

Kudos to our October Community Star of the month!

Announcing Our 2024 Season 2 Super Users!

A new season of Super Users has arrived, and we are so grateful for the daily…

Dynamics 365 Community Newsletter - September 2024

Check out the latest community news

Leaderboard

#1
André Arnaud de Calavon Profile Picture

André Arnaud de Cal... 290,532 Super User 2024 Season 2

#2
Martin Dráb Profile Picture

Martin Dráb 228,501 Most Valuable Professional

#3
nmaenpaa Profile Picture

nmaenpaa 101,148

Leaderboard

Featured topics

Product updates

Dynamics 365 release plans