共用方式為


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.csMyFile1.csMyFile3.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>

另請參閱