gpt4 book ai didi

C# - 使用新的对象值更新列表项

转载 作者:太空宇宙 更新时间:2023-11-03 16:23:55 24 4
gpt4 key购买 nike

我有一个对象,它有一些属性,其中一些属性是列表。每个列表都包含其他类的实例。我想要做的是从列表中取出第一项并覆盖这些属性值。

这是我所拥有的伪示例:

public class User
{
public List<Address> Addresses = new List<Address>();

public User ( )
{
Addresses = fill with data;
}
}


public class TestUser
{
public User user; // Is filled somewhere in this class

public void TestUpdateList ( Address addr )
{
// The param "addr" contains new values
// These values must ALWAYS be placed in the first item
// of the "Addresses" list.

// Get the first Address object and overwrite that with
// the new "addr" object
user.Addresses[0] = addr; // <-- doesn't work, but should give you an idea
}
}

我希望这个例子能说明我想做什么。

所以我基本上是在寻找一种方法来“更新”列表中的现有项目,在本例中是一个对象

最佳答案

尚不完全清楚您要完成什么,但是,请参阅以下代码——有一个地址、一个用户和一个名为 FeatureX 的实用程序,它用给定值替换用户的第一个地址。

class Address {
public string Street { get; set; }
}

class User {
public List<Address> Addresses = new List<Address>();
}

class FeatureX {
public void UpdateUserWithAddress(User user, Address address) {
if (user.Addresses.Count > 0) {
user.Addresses[0] = address;
} else {
user.Addresses.Add(address);
}
}
}

以下用法输出 'Xyz' 两次:

User o = new User();
Address a = new Address() { Street = "Xyz" };

new FeatureX().UpdateUserWithAddress(o, a);
Console.WriteLine(o.Addresses[0].Street);

o = new User();
o.Addresses.Add(new Address { Street = "jjj" });
new FeatureX().UpdateUserWithAddress(o, a);
Console.WriteLine(o.Addresses[0].Street);

请注意,如果您与第三方共享您的 DLL,公共(public)字段可能会造成很多麻烦。

关于C# - 使用新的对象值更新列表项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13120581/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com