Condividi tramite


RemoveDuplicates (attività)

Rimuove gli elementi duplicati dalla raccolta di elementi specificata.

Parametri

Nella tabella che segue vengono descritti i parametri dell'attività RemoveDuplicates.

Parametro Descrizione
Filtered Parametro di output ITaskItem[] facoltativo.

Contiene una raccolta di elementi con tutti gli elementi duplicati rimossi. Viene rispettato l'ordine degli elementi di input, mantenendo la prima istanza di ogni elemento duplicato.
HadAnyDuplicates Parametro di output Boolean facoltativo.

Se true sono stati trovati elementi duplicati, false in caso contrario.
Inputs Parametro ITaskItem[] facoltativo.

Raccolta di elementi da cui rimuovere gli elementi duplicati.

Osservazioni:

In questa attività non viene fatta distinzione tra maiuscole e minuscole e non vengono confrontati i metadati quando si determinano i duplicati.

Oltre ai parametri elencati sopra, questa attività eredita i parametri dalla classe TaskExtension, che a sua volta eredita dalla classe Task. Per un elenco di questi parametri aggiuntivi e le rispettive descrizioni, vedere TaskExtension Base Class.

Esempio

L'esempio seguente usa l'attività RemoveDuplicates per rimuovere gli elementi duplicati dalla raccolta di elementi MyItems. Quando l'attività viene completata, la raccolta di elementi FilteredItems contiene un elemento.

<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'esempio seguente dimostra che l'attività RemoveDuplicates mantiene il relativo ordine di input. Quando l'attività viene completata, la raccolta di elementi FilteredItems contiene gli elementi MyFile2.cs, MyFile1.cs e MyFile3.cs in questo ordine.

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

Vedi anche