更改列表中的项目 C#
Changing an item in a list C#
我有一个名为 Cars 的对象,然后是一个名为 Colours 的对象列表。这些颜色是汽车可以配备的可能颜色。例如:
Car audi = new Car();
audi.Colours.Add("Black");
audi.Colours.Add("Silver");
audi.Colours.Add("White");
现在让我们从理论上讲这些可以按任何顺序排列,所以我不能简单地使用索引。
我知道我可以通过以下方式获得物品:
audi.Colours.Find(colour => colour.Name == "Silver");
如何在不重建整个列表的情况下将 Silver 项目更改为 "Swanky Diamond"?
在现实生活中,我从数据库中构建列表并且我有一个唯一标识符。
提前致谢。
您可以结合使用 IndexOf
和列表索引器 setter,如下所示:
var index = audi.Colours.IndexOf("Silver");
if (index >= 0) {
audi.Colours[index] = "Swanky Diamond";
}
int zeroBasedIndex = audi.Colors.IndexOf("Silver")
if (zeroBasedIndex != -1)
audi.Colors[zeroBasedIndex] = "Swanky Diamond";
else
//Item Not In List
如果项目没有按概念排序,则使用 HashSet
,而不是 List
。
要查看某个项目是否包含在集合中,请使用 Contains
。
if(audi.Colours.Contains("Silver"))
{
}
要用一个项目替换另一个项目,请删除您要删除的项目,然后添加您要添加的项目:
audi.Colours.Remove("Silver");
audi.Colours.Add("Swanky Diamond");
我有一个名为 Cars 的对象,然后是一个名为 Colours 的对象列表。这些颜色是汽车可以配备的可能颜色。例如:
Car audi = new Car();
audi.Colours.Add("Black");
audi.Colours.Add("Silver");
audi.Colours.Add("White");
现在让我们从理论上讲这些可以按任何顺序排列,所以我不能简单地使用索引。
我知道我可以通过以下方式获得物品:
audi.Colours.Find(colour => colour.Name == "Silver");
如何在不重建整个列表的情况下将 Silver 项目更改为 "Swanky Diamond"?
在现实生活中,我从数据库中构建列表并且我有一个唯一标识符。
提前致谢。
您可以结合使用 IndexOf
和列表索引器 setter,如下所示:
var index = audi.Colours.IndexOf("Silver");
if (index >= 0) {
audi.Colours[index] = "Swanky Diamond";
}
int zeroBasedIndex = audi.Colors.IndexOf("Silver")
if (zeroBasedIndex != -1)
audi.Colors[zeroBasedIndex] = "Swanky Diamond";
else
//Item Not In List
如果项目没有按概念排序,则使用 HashSet
,而不是 List
。
要查看某个项目是否包含在集合中,请使用 Contains
。
if(audi.Colours.Contains("Silver"))
{
}
要用一个项目替换另一个项目,请删除您要删除的项目,然后添加您要添加的项目:
audi.Colours.Remove("Silver");
audi.Colours.Add("Swanky Diamond");