【发布时间】:2014-07-30 18:56:49
【问题描述】:
我在更新 List<string> 下使用 LINQ 匹配不同字符串的单个项目时遇到问题。假设我有一个名字列表,我想检查名字“John”是否已经存在于我的列表中。如果是,则将“John”替换为“Anna”。
这是我的工作:
var sItem = myList.First(n=> n == "John"); //I am 100% sure that John exists, that\s why I use .First
sItem = "Anna";
这是它应该如何工作的,但是当我在这个过程之后检查我的列表 (myList) 时,原始项目仍然存在(我仍然可以看到 John,而不是 Anna)。我也尝试在 List 上实现 INotifyChanged,但仍然没有结果。
我做错了什么?
【问题讨论】:
-
您没有更改列表。你正在改变你的变量。
-
那我该如何解决呢?
-
不需要 LINQ:
var sItem = myList.IndexOf("John"); myList[sItem] = "Anna";