In C#, se ho un List<T>
e ho un oggetto di tipo T
, come posso sostituire un articolo specifico nello List<T>
con l'oggetto di tipo T
?Sostituire un oggetto in un elenco di oggetti
Ecco che cosa ho provato:
List<CustomListItem> customListItems = new List<CustomListItem>();
CustomListItem customListItem1 = new CustomListItem() { name = "Item 1", date = DateTime.MinValue};
CustomListItem customListItem2 = new CustomListItem() { name = "Item 2", date = DateTime.MinValue };
CustomListItem customListItem3 = new CustomListItem() { name = "Item 3", date = DateTime.MinValue };
customListItems.Add(customListItem1);
customListItems.Add(customListItem2);
customListItems.Add(customListItem3);
CustomListItem newCustomListItem = new CustomListItem() { name = "Item 4", date = DateTime.Now };
customListItem2 = customListItems.Where(i=> i.name == "Item 2").First();
customListItem2 = newCustomListItem;
Nel codice di cui sopra, voglio sostituire la customListItem2
con l'newCustomListItem
.
Devo rimuovere l'elemento nell'elenco e quindi inserire il nuovo elemento? Non posso fare un semplice incarico di customListItem2 = newCustomListItem
?
Qual è il modo più efficiente di sostituire un elemento in un elenco con un altro elemento?
Grazie in anticipo
Sono state prese delle http: // StackOverflow. com/domande/17188966/how-to-replace-list-item-in-best-way? – haim770
Oltre alle soluzioni già pubblicate, è necessario implementare un Equals/GetHashCode per il proprio tipo personalizzato, altrimenti l'operazione Where/Index potrebbe non riuscire a trovare l'elemento giusto. – HimBromBeere