RemoveDuplicates – úloha

Odebere duplicitní položky ze zadané kolekce položek.

Parametry

Následující tabulka popisuje parametry RemoveDuplicates úlohy.

Parametr Popis
Filtered Volitelný ITaskItem[] výstupní parametr.

Obsahuje kolekci položek se všemi odstraněnými duplicitními položkami. Pořadí vstupních položek je zachováno, přičemž první instance každé duplicitní položky je zachována.
HadAnyDuplicates Volitelný Boolean výstupní parametr.

Pokud true byly nalezeny duplicitní položky, false jinak.
Inputs Volitelný ITaskItem[] parametr.

Kolekce položek pro odebrání duplicitních položek.

Poznámky

Tato úloha nerozlišuje malá a velká písmena a při určování duplicit nerovná metadata položek.

Kromě výše uvedených parametrů tato úloha dědí parametry z TaskExtension třídy, která sama dědí z Task třídy. Seznam těchto dalších parametrů a jejich popisů naleznete v tématu TaskExtension základní třída.

Příklad

Následující příklad používá RemoveDuplicates úlohu k odebrání duplicitních položek z MyItems kolekce položek. Po dokončení FilteredItems úkolu obsahuje kolekce položek jednu položku.

<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">

    <ItemGroup>
        <MyItems Include="MyFile.cs"/>
        <MyItems Include="MyFile.cs">
            <Culture>fr</Culture>
        </MyItems>
        <MyItems Include="myfile.cs"/>
    </ItemGroup>

    <Target Name="RemoveDuplicateItems">
        <RemoveDuplicates
            Inputs="@(MyItems)">
            <Output
                TaskParameter="Filtered"
                ItemName="FilteredItems"/>
        </RemoveDuplicates>
    </Target>
</Project>

Následující příklad ukazuje, že RemoveDuplicates úloha zachovává své vstupní pořadí. Po dokončení FilteredItems úkolu obsahuje kolekce položek položky MyFile2.cs, MyFile1.cs a MyFile3.cs v tomto pořadí.

<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">

    <ItemGroup>
        <MyItems Include="MyFile2.cs"/>
        <MyItems Include="MyFile1.cs" />
        <MyItems Include="MyFile3.cs" />
        <MyItems Include="myfile1.cs"/>
    </ItemGroup>

    <Target Name="RemoveDuplicateItems">
        <RemoveDuplicates
            Inputs="@(MyItems)">
            <Output
                TaskParameter="Filtered"
                ItemName="FilteredItems"/>
            <Output
                TaskParameter="HadAnyDuplicates"
                PropertyName="_HadAnyDuplicates"/>
        </RemoveDuplicates>
    </Target>
</Project>

Viz také