Dr.*_*ail 0 c# arrays class list
我有一个简单的类,具有一个 ID 和多个其他属性
public class Item
{
public int ID { get; set; }
public string Prop1 { get; set; }
public string Prop2 { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
现在我有List<Item>很多这些物品
List<Item> items = new List<Item>()
{
new Item() { ID = 1, Prop1="foo" , Prop2= "foo" },
new Item() { ID = 2, Prop1="foo" , Prop2= "foo" },
new Item() { ID = 3, Prop1="foo" , Prop2= "foo" }
};
Run Code Online (Sandbox Code Playgroud)
问题:当我想Item通过 ID 替换 a 的新版本时,是否有比这更好/更聪明的方法:
//new Item
Item replacement = new Item() { ID = 2, Prop1 = "bar", Prop2 = "bar" };
items.RemoveAll(x => x.ID == replacement.ID);
items.Add(replacement);
items = items.OrderBy(x => x.ID).ToList();
Run Code Online (Sandbox Code Playgroud)
如果您需要进行完全替换而不仅仅是更新(您可以简单地找到该对象,然后逐一复制属性),您可以通过找到其索引然后直接替换它而不是删除来省去一些麻烦、添加和重新排序。
int index = items.FindIndex(item => item.ID == replacement.ID);
if (index >= 0)
{
items[index] = replacement;
}
Run Code Online (Sandbox Code Playgroud)
替换件将位于与原始件相同的位置。
| 归档时间: |
|
| 查看次数: |
4356 次 |
| 最近记录: |