RemoveDuplicates — zadanie

Usuwa zduplikowane elementy z określonej kolekcji elementów.

Parametry

W poniższej tabeli opisano parametry RemoveDuplicates zadania.

Parametr Opis
Filtered Opcjonalny ITaskItem[] parametr wyjściowy.

Zawiera kolekcję elementów ze wszystkimi usuniętymi zduplikowanymi elementami. Kolejność elementów wejściowych jest zachowywana, zachowując pierwsze wystąpienie każdego zduplikowanego elementu.
HadAnyDuplicates Opcjonalny Boolean parametr wyjściowy.

Jeśli true znaleziono zduplikowane elementy, false w przeciwnym razie.
Inputs Opcjonalny ITaskItem[] parametr.

Kolekcja elementów do usuwania zduplikowanych elementów.

Uwagi

To zadanie jest bez uwzględniania wielkości liter i nie porównuje metadanych elementu podczas określania duplikatów.

Oprócz parametrów wymienionych powyżej to zadanie dziedziczy parametry z TaskExtension klasy, która sama dziedziczy z Task klasy. Aby uzyskać listę tych dodatkowych parametrów i ich opisy, zobacz TaskExtension, klasa bazowa.

Przykład

W poniższym przykładzie użyto RemoveDuplicates zadania w celu usunięcia zduplikowanych elementów z MyItems kolekcji elementów. Po zakończeniu FilteredItems zadania kolekcja elementów zawiera jeden element.

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

W poniższym przykładzie pokazano, że RemoveDuplicates zadanie zachowuje kolejność danych wejściowych. Po zakończeniu FilteredItems zadania kolekcja elementów zawiera elementy MyFile2.cs, MyFile1.cs i MyFile3.cs w tej kolejności.

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

Zobacz też