Skip to main content

Notifications

Small and medium business | Business Central, N...
Answered

get a unique collection of items

(0) ShareShare
ReportReport
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.

  • 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

News and Announcements

Announcing Category Subscriptions!

Quick Links

December Spotlight Star - Muhammad Affan

Congratulations to a top community star!

Top 10 leaders for November!

Congratulations to our November super stars!

Tips for Writing Effective Verified Answers

Best practices for providing successful forum answers ✍️

Leaderboard

#1
André Arnaud de Calavon Profile Picture

André Arnaud de Cal... 291,359 Super User 2024 Season 2

#2
Martin Dráb Profile Picture

Martin Dráb 230,370 Most Valuable Professional

#3
nmaenpaa Profile Picture

nmaenpaa 101,156

Leaderboard

Featured topics

Product updates

Dynamics 365 release plans