将字典中的值分配给列表(C#、WPF)
Assing values from Dictionary to IList (C#, WPF)
我得到方法接口:
Task<Dictionary<long, Cars>> GetCars();
然后我有虚拟机:
private IList<Cars> m_cars;
public IList<Cars> MyCars
{
get => m_cars;
}
和一些方法:
public override void Load()
{
MyCars = someservice.GetCars();
}
但我做不到。如何将值从 Dictionary
分配到 IList
?
public async override void Load()
{
var dictionary = await someservice.GetCars();
MyCars = dictionary.Values.ToList();
}
如果您出于某种未知原因无法将方法标记为 async
,因此无法调用 await
,您必须同步调用异步方法 GetCars()
,这是真的很推荐,为什么同步调用的时候是异步的
为此,您只需调用 Task
的 .Result
public override void Load()
{
MyCars = someservice.GetCars().Result.Values.ToList();
}
这里是给定选项的演示
我得到方法接口:
Task<Dictionary<long, Cars>> GetCars();
然后我有虚拟机:
private IList<Cars> m_cars;
public IList<Cars> MyCars
{
get => m_cars;
}
和一些方法:
public override void Load()
{
MyCars = someservice.GetCars();
}
但我做不到。如何将值从 Dictionary
分配到 IList
?
public async override void Load()
{
var dictionary = await someservice.GetCars();
MyCars = dictionary.Values.ToList();
}
如果您出于某种未知原因无法将方法标记为 async
,因此无法调用 await
,您必须同步调用异步方法 GetCars()
,这是真的很推荐,为什么同步调用的时候是异步的
为此,您只需调用 Task
.Result
public override void Load()
{
MyCars = someservice.GetCars().Result.Values.ToList();
}
这里是给定选项的演示