通过其他 API 方法在列表中添加值

Add values in list from other API method

我有一个列表,我在该列表中添加了基于 class 的值。详情见下文。

result.ContactList = contactsResult.Item2.Select(x => new PrjContact() { 
                            Id = x.ID, 
                            UserId = x.UserId,
                            Name = xName,
                            Email = x.Email, 
                        }).ToList();

现在我需要再调用一个 API 并在那个 API 中传递这个 UserId 并获得该用户的 phone 号码。

然后需要在 result.ContactList 中添加上面列表中的 phone 号码。

这个方法我试过

foreach (var user in contactsResult.Item2)
{
   UserInfo = API.GetUserDetail(user.UserId);
   result.ContactList.Select(x => new ProjectContactView()
                            {
                                Phone = UserInfo.PhoneNumber
                            });
}

但这不起作用。

这没有做任何事情:

result.ContactList.Select(x => new ProjectContactView()
{
    Phone = UserInfo.PhoneNumber
});

当然,它遍历 result.ContactList 并将其投射到一个新的集合中。但是 (1) 你不对该集合做任何事情,并且 (2) 它用一个只有一个 属性 集合的全新对象覆盖该集合中的每个对象。

对于初学者来说,如果你想修改 result.ContactList 然后迭代它:

foreach (var user in result.ContactList)
{

}

那么如果这里的目标是在 user 上使用 属性 来获取数据并更新 user 那么只需更新 user:

foreach (var user in result.ContactList)
{
    var userInfo = API.GetUserDetail(user.UserId);
    user.Phone = userInfo.PhoneNumber
}