更新c#列表中项目的最简单方法

时间:2018-06-19 02:44:29

标签: c# list

我想更新已存在的c#布尔列表。

以下工作吗?

updateUserPhoto = function(url,imageName){
     var updateRef = {}        
     updateRef ['/user/' + firebase.auth().currentUser.uid + '/photoUrl'] = url;
     updateRef ['/user/' + firebase.auth().currentUser.uid + '/imageName'] = imageName // you can use the imageName key and value when a user uploads a new photo so you can use this imageName and refer it to the storage ref and delete the old and upload the newer one.
     firebase.database().ref().update(updateRef) // this is method is called multipath update. Note it returns a promise.
}

为什么我会看到上下文警告

  

从不使用传递给方法的值,因为在读取之前它会在方法体中被覆盖

1 个答案:

答案 0 :(得分:3)

你拥有的item实际上只是lambda函数的一个参数。如果您指定它,则只修改参数,而不是列表中的值。这是一个有效的事情,但它通常不合理,因此警告。

如果要实际更新列表中的值,则需要执行以下操作:

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

看起来更冗长?它是。但迭代器不是为突变而设计的。如果您可以生成新列表并完全替换myList,那么您可以这样做:

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

请注意原始列表将会消失。