首頁 >後端開發 >C++ >如何在 C# 中修改結構列表中的元素?

如何在 C# 中修改結構列表中的元素?

Susan Sarandon
Susan Sarandon原創
2025-01-05 00:20:39789瀏覽

How Can I Modify Elements Within a List of Structs in C#?

修改結構清單中的元素

使用結構清單時,嘗試使用簡單的賦值結果更改單一元素在錯誤訊息「無法修改System.Collections.Generic.List.this[int] 的回傳值,因為它不是變數。

理解值類型語義

在 C# 中,結構體變數保存資料的副本,意味著對副本進行的任何修改不影響原來的。此行為與類別不同,類別中物件引用指向實際資料。

存取和修改結構元素

在提供的範例中,當分配 MyList[1] 時。命名為“bob”,建立 MyStruct 的新實例並將其指派給該變數。但是,這個新實例並不引用清單中的原始元素。因此,原始元素保持不變。

修正清單中結構體元素的選項

要修改結構體清單中的實際元素,請考慮以下方法:

  1. 使用接口:透過使用setter 方法實現接口,人們可以透過接口引用修改結構的內部成員。然而,這種方法引入了裝箱,這會導致性能損失。
  2. 建立一個等效類別:如果修改清單中的元素至關重要,那麼最好使用類別而不是結構體。類別作為參考類型,允許直接修改原始實例。

在結構體和類別之間進行選擇

決定使用結構體或類別不應主要基於將它們儲存在集合中的需要。相反,請考慮所表示的資料的語義和要求。對於表示單一不可變值的值對象,結構通常是首選。另一方面,類別擅長表示具有可變狀態和潛在複雜關係的物件。

以上是如何在 C# 中修改結構列表中的元素?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn