Partager via


RemoveDuplicates (tâche)

Supprime les éléments en double de la collection d’éléments spécifiée.

Paramètres

Le tableau ci-dessous décrit les paramètres de la tâche RemoveDuplicates .

Paramètre Description
Filtered Paramètre de sortie ITaskItem[] facultatif.

Contient une collection d’éléments dont tous les doublons ont été supprimés. L’ordre des éléments d’entrée est préservé, en conservant la première instance de chaque élément en double.
HadAnyDuplicates Paramètre de sortie Boolean facultatif.

Si des éléments true en double ont été trouvés, false sinon.
Inputs Paramètre ITaskItem[] facultatif.

Collection d’éléments de laquelle supprimer les éléments en double.

Remarques

Cette tâche ne prend pas en compte la casse et ne compare pas les métadonnées des éléments lors de la recherche des doublons.

En plus des paramètres énumérés ci-dessus, cette tâche hérite des paramètres de la classe TaskExtension , qui elle-même hérite de la classe Task . Pour obtenir la liste de ces paramètres supplémentaires et leurs descriptions, consultez Classe de base TaskExtension.

Exemple

L’exemple suivant utilise la tâche RemoveDuplicates pour supprimer les éléments en double de la collection d’éléments MyItems. Lorsque la tâche est terminée, la collection d’éléments FilteredItems contient un élément.

<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>

L’exemple suivant montre que la tâche RemoveDuplicates conserve son ordre d’entrée. Lorsque la tâche est terminée, la collection d’éléments FilteredItems contient les éléments MyFile2.cs, MyFile1.cs et MyFile3.cs dans cet ordre.

<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>

Voir aussi