【发布时间】:2015-01-01 09:24:04
【问题描述】:
在 C# 中,如果我有一个 List<T>,并且我有一个 T 类型的对象,如何将 List<T> 中的特定项目替换为 T 类型的对象?
这是我尝试过的:
List<CustomListItem> customListItems = new List<CustomListItem>();
CustomListItem customListItem1 = new CustomListItem() { name = "Item 1", date = DateTime.MinValue};
CustomListItem customListItem2 = new CustomListItem() { name = "Item 2", date = DateTime.MinValue };
CustomListItem customListItem3 = new CustomListItem() { name = "Item 3", date = DateTime.MinValue };
customListItems.Add(customListItem1);
customListItems.Add(customListItem2);
customListItems.Add(customListItem3);
CustomListItem newCustomListItem = new CustomListItem() { name = "Item 4", date = DateTime.Now };
customListItem2 = customListItems.Where(i=> i.name == "Item 2").First();
customListItem2 = newCustomListItem;
在上面的代码中,我想用newCustomListItem替换customListItem2。
我是否必须删除列表中的项目,然后插入新项目?我可以不做customListItem2 = newCustomListItem的简单分配吗?
用另一个项目替换列表中的项目最有效的方法是什么?
提前致谢
【问题讨论】:
-
除了已经发布的解决方案之外,您还应该为您的自定义类型实现 Equals/GetHashCode,否则您的 Where/Index 操作可能无法找到正确的元素。
标签: c# .net list variable-assignment generic-list