我有一个类来处理一些数据:
public class User
{
public string Name;
public string Date;
}
在另一个课程中,我创建一个List
User
课程并按如下方式添加数据:
public class Display
{
List<User> userData = new List<User>;
private void add()
{
User udata = new User;
udate.Name = "Abc";
udata.Date = "1/1/18";
userData.Add(udata);
}
}
我的问题是,在添加一些数据后,我该如何更新它?假设我添加了udata
Name
的数据(ABC
就是我的意思),我该如何更新?
答案 0 :(得分:4)
由于您的列表包含可变类型,因此您只需获取对要更新的特定项目的引用。
这可以通过多种方式完成 - 使用它的索引,使用Find
方法,或使用linq是我想到的前三个。
使用index:
userData[0]?.Name = "CBA";
使用Find:
userData.Find(u => u.Name = "Abc")?.Name = "CBA";
使用linq(FirstOrDefault不是唯一的选择):
userData.FirstOrDefault(u => u.Name = "Abc")?.Name = "CBA";
请注意,使用null conditional operator(]?
和.?
)可防止在未找到项目时出现空引用异常。
答案 1 :(得分:1)
没有什么棘手的,真的(但确实使用System.Linq
)
**编辑:如果有两个具有相同名称的用户,则将Single更改为First以避免错误。 **
void Update(string name, string newName)
{
var user = userData.First(u => u.Name == name);
user.Name = newName;
}
请注意,这会更改对象,List会维护对已更改对象的引用。