【发布时间】:2014-10-30 17:46:14
【问题描述】:
我有以下课程
public PhoneModel
{
int PhoneID;
string PhoneType;
string PhoneNumber;
}
public ContactModel
{
int ContactID;
string FirstName;
string LastName;
List<PhoneModel> PhoneNumber;
}
我需要显示一个联系人列表,其中包含每个联系人的所有电话号码。
var contactList = await ContactBLL.GetContactList();
IEnumerable<ContactViewModel> contacts = contactList.ToList().ConvertAll(
async c => new ContactViewModel
{
phones = (await ContactBLL.GetContactPhones(c.ContactID)).ToList(),
firstName = c.FirstName,
lastName = c.LastName
});
我目前收到编译错误提示“无法将类型 'System.Threading.Tasks.Task.List 隐式转换为 IEnumerable....” 但是,如果没有 async 调用来获取电话列表,它将起作用(当然没有电话)。我可以将async 函数GetContactPhones() 更改为同步函数,它将按预期工作。我的问题是有没有办法使上面的代码与async 调用一起工作?
谢谢。
【问题讨论】:
标签: c# asynchronous lambda