RemoveDuplicates - задача
Удаляет повторяющиеся элементы из указанной коллекции элементов.
Параметры
В следующей таблице приводятся параметры задачи RemoveDuplicates
.
Параметр | Описание |
---|---|
Filtered |
Необязательный выходной параметр ITaskItem[] .Содержит коллекцию элементов, из которой удалены все повторяющиеся элементы. При этом порядок входных элементов остается неизменным и сохраняется первый экземпляр каждого повторяющегося элемента. |
HadAnyDuplicates |
Необязательный выходной параметр Boolean .Если true найдены повторяющиеся элементы, false в противном случае. |
Inputs |
Необязательный параметр ITaskItem[] .Коллекция элементов, из которой нужно удалить повторяющиеся элементы. |
Замечания
Эта задача не учитывает регистр, а также не сравнивает метаданные элементов при определении повторяющихся элементов.
Помимо перечисленных выше параметров, эта задача наследует параметры от класса TaskExtension, который, в свою очередь, наследует от класса Task. Список этих дополнительных параметров и их описания см. в статье Базовый класс TaskExtension.
Пример
В этом примере показано использование задачи RemoveDuplicates
для удаления повторяющихся элементов из коллекции элементов MyItems
. После завершения задачи коллекция элементов FilteredItems
содержит один элемент.
<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>
В примере ниже видно, что в задаче RemoveDuplicates
сохраняется порядок входных элементов. По завершении задачи в коллекции элементов FilteredItems
содержатся элементы MyFile2.cs, MyFile1.cs и MyFile3.cs в указанном порядке.
<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>