Remplacer un élément de la collection à l'aide de Linq

Comment puis-je rechercher et remplacer une propriété à l'aide de Linq dans ce scénario spécifique ci-dessous:

public interface IPropertyBag { }
public class PropertyBag : IPropertyBag
{
    public Property[] Properties { get; set; }

    public Property this[string name]
    {
        get { return Properties.Where((e) => e.Name == name).Single(); }
        //TODO: Just copying values... Find out how to find the index and replace the value 
        set { Properties.Where((e) => e.Name == name).Single().Value = value.Value; }
    }
}


Merci pour votre aide à l'avance.

Ce PropertyBag utilisez-vous? Je ne pense pas qu'il y en a un dans le .Net BCL. Je demande cela parce que les "Propriétés" de lecture est probablement le seul à faire le clonage, d'où la raison pourquoi vous ne pouvez pas faire ce que vous voulez.
Jonathan, c'est mon propre PropertyBag classe.. Le code ci-dessus fonctionne, parce que je ne suis pas le remplacement de l'intégralité de l'article dans la Propriété tableau []. Le commentaire dans le code illustre le fait que l': //TODO: il suffit de copier les valeurs... de savoir comment trouver l'index et remplacer la valeur
Me demandais pourquoi vous n'avez pas à utiliser mon LINQ-gratuit IndexOf() solution ... maintenant je sais! J'ai corrigé ma réponse par exemple à la méthode statique.

OriginalL'auteur Vyas Bharghava | 2009-04-14