Example: Removing Values from an Attribute with Multiple Values

You can use a rules extension to remove a specified value from an attribute containing multiple attribute values. The most efficient way to do this is by first calculating the new multi-valued attribute and then assigning the result to the attribute.

The following example shows how to specified values from an attribute with multiple values. The example removes any attribute value that begins with smtp: from the multi-valued attribute called othermailbox. The example first removes all values from the value collection. Each attribute value that does not begin with smtp: is then added to the value collection.

    Public Sub MapAttributesForImport(ByVal FlowRuleName As String, _
        ByVal csentry As CSEntry, _
        ByVal mventry As MVEntry) _
        Implements IMASynchronization.MapAttributesForImport
    
        Dim mailElement As Value
    
        ' Create an empty string value collection
        Dim finalValues As ValueCollection = Utils.ValueCollection("initialValue")
        finalValues.Clear()
    
        For Each mailElement In csentry("othermailbox").Values
            If Not mailElement.ToString.ToLower.StartsWith("smtp:") Then
                finalValues.Add(mailElement)
            End If
        Next
    
        mventry("othermailbox").Values = finalValues
    End Sub
    void IMASynchronization.MapAttributesForImport(
        string  FlowRuleName, 
        CSEntry csentry, 
        MVEntry mventry)
    {
        // Create an empty string value collection
        ValueCollection finalValues = Utils.ValueCollection("initialValue");
        finalValues.Clear();
     
        foreach(Value mailElement in csentry["othermailbox"].Values)
        {
            if(! mailElement.ToString().ToLower().StartsWith("smtp:"))
            {
                finalValues.Add(mailElement);
            }
        }
    
        mventry["othermailbox"].Values = finalValues;
    }

Send comments about this topic to Microsoft

Build date: 2/16/2009