通过其他 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
}
我有一个列表,我在该列表中添加了基于 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
}