簡體   English   中英

更新ac#列表中項目的最簡單方法

[英]Easiest way to update items in a c# list

我想更新已經存在的ac#布爾列表。

以下工作嗎?

myList.ForEach(item => item = true);

為什么我看到上下文警告,

永遠不會使用傳遞給該方法的值,因為在讀取之前,該值會在方法主體中被覆蓋

你有什么作為item實際上只是一個lambda函數的參數。 如果分配它,則僅修改參數,而不修改列表中的值。 這是一件有效的事情,但是通常不明智,因此發出警告。

如果要實際更新列表中的值,則需要執行以下操作:

for(var i = 0; i < myList.Length; i++)
    myList[i] = true;

看起來更冗長? 它是。 但是迭代器並不是為突變而設計的。 如果可以生成一個新列表並完全替換myList ,則可以執行以下操作:

myList = myList.Select(item => true).ToList();

請注意,原始列表將消失。

暫無
暫無

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

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