C # DataContractJsonSerializer falla cuando el valor puede ser una matriz o un solo elemento

Uso el DataContractJsonSerializer para analizar una cadena json en una jerarquía de objetos. La cadena json se ve así:

{
    "groups": [
        {
            "attributes": [
                {
                    "sortOrder": "1",
                    "value": "A"
                },
                {
                    "sortOrder": "2",
                    "value": "B"
                }
            ]
        },
        {
            "attributes": {
                "sortOrder": "1",
                "value": "C"
            }
        }
    ]
}

Como puede ver, el subvalor de "atributos" puede ser una matriz o un solo elemento. Encontré la parte del código donde se produce el problema:

[DataContract]
public class ItemGroup
{
    [DataMember(Name="attributes")]
    public List<DetailItem> Items  { get; set; }
}

Esto funciona para el primero pero falla en el segundo.

¿Alguien tiene una respuesta para esto?

Gracia

Respuestas a la pregunta(3)

Su respuesta a la pregunta