簡體   English   中英

在VS2013的C#中更新列表中每個元素的值

[英]update value in each element of a list in C# of VS2013

我需要在VS2013的C#中更新列表中每個元素的值。

編碼:

var wl = myList.ToArray();
List<myElement> tl = new List<myElement>();
tl = givenList; // I need to update values in element in this list
for(int p =0; p < wl.Count(); ++p)
{
    decimal? fv = (wl[p].value * 10) / ((decimal?)a_constant);
    tl.ToArray()[p].value = fv; // this cannot update the value
}
myList = tl;

但是, tl.ToArray()[p].value = fv; 不更新值。

任何幫助,將不勝感激。

您正在創建大量的變量,這些變量實際上並沒有做太多,而且很難讀取。 另外,您無需繼續調用ToArray嘗試如下操作:

for(int p = 0; p < myList.Count; ++p)
{
    decimal? fv = (myList[p].value * 10) / ((decimal?)a_constant);
    givenList[p].value = fv;
}

tl.ToArray()創建每個元素的副本。 我不確定代碼中myElement的類型是什么,但是如果它是struct或任何其他value type ,則可以解釋為什么不修改您的集合。 您的代碼將更新元素的副本,而不是元素本身

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM