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>