如何使用c#更新列表中的条目

时间:2017-08-12 19:00:11

标签: c# oop

我尝试使用下面的代码更新列表中的一个条目,但仍然没有运气。

entries.PhonebookList[entries.PhonebookList.FindIndex(ab => ab.Equals(fName))] = fNameNew;

我的参数fNameNew出错了,它说我无法隐式转换类型'字符串'到x.PhonebookItem。

4 个答案:

答案 0 :(得分:1)

您应该将fNameNew分配给对象的firstname属性,因此它应该是

entries.PhonebookList[entries.PhonebookList.FindIndex(ab => ab.FirstName.Equals(fName))].firstname = fNameNew;

答案 1 :(得分:1)

应该是这样的:

entries
.PhonebookList[
     entries
     .PhonebookList
     .FindIndex(ab => 
        ab.FirstName.Equals(fName))
].FirstName= fNameNew;

答案 2 :(得分:1)

两个问题:

首先,您尝试将整个对象与单个字符串进行比较:

entries.PhonebookList.FindIndex(ab => ab.Equals(fName))

您希望仅将该对象上的一个属性与字符串进行比较:

entries.PhonebookList.FindIndex(ab => ab.FirstName.Equals(fName))

此时您已成功引用列表中的对象:

entries.PhonebookList[entries.PhonebookList.FindIndex(ab => ab.FirstName.Equals(fName))]

但第二个问题是你无法将整个对象设置为字符串。相反,只需设置属性:

entries.PhonebookList[entries.PhonebookList.FindIndex(ab => ab.FirstName.Equals(fName))].FirstName = fNameNew;

答案 3 :(得分:0)

对于那些回答这个问题的人。非常感谢你。下面的代码适合我。

entries.PhonebookList[entries.PhonebookList.FindIndex(ab => ab.FirstName.Equals(fName))].FirstName = fNameNew;

祝所有人幸福。你们真的很棒。 :)