如何将通用 ObservableCollection<T> 分配给已知 T 参数的 ObservableCollection?
How to assign generic ObservableCollection<T> to ObservableCollection of known T parameter?
我什至不确定这个问题问的是否正确,因为我不知道如何命名它。对不起,如果混淆,但我会尝试逐步解释我不知道的内容。在我的 VM 中,其中一种方法是调用 service 方法:
public ObservableCollection<LoadedJockey> Jockeys { get; private set; }
Jockeys = await _updateDataService.UpdateDataAsync(Jockeys, JPlFrom, JPlTo, "updateJockeysPl");
service 方法接受类型为 ObservableCollection<T>
的 argument,因此 Jockeys
可以是 Horses
、Cars
、Poneys
等。在我的 service 方法中,我需要将通用集合分配给 ObservableCollection<LoadedJockeys>
(已知类型)传递给 参数 ,得到这样的东西:
public async Task<ObservableCollection<T>> UpdateDataAsync<T>(ObservableCollection<T> genericCollection, int idFrom, int idTo, string jobType)
if (jobType.Contains("Horses"))
{
ObservableCollection<LoadedHorses> horses = genericCollection;
}
else if (jobType.Contains("Jockeys"))
{
ObservableCollection<LoadedJockeys> jockeys = genericCollection;
}
怎么做?
投射元素
ObservableCollection<LoadedJockeys> jockeys =
new ObservableCollection<LoadedJockeys>(genericCollection.Cast<LoadedJockeys>());
或者只取匹配的元素
ObservableCollection<LoadedJockeys> jockeys =
new ObservableCollection<LoadedJockeys>(genericCollection.OfType<LoadedJockeys>());
我什至不确定这个问题问的是否正确,因为我不知道如何命名它。对不起,如果混淆,但我会尝试逐步解释我不知道的内容。在我的 VM 中,其中一种方法是调用 service 方法:
public ObservableCollection<LoadedJockey> Jockeys { get; private set; }
Jockeys = await _updateDataService.UpdateDataAsync(Jockeys, JPlFrom, JPlTo, "updateJockeysPl");
service 方法接受类型为 ObservableCollection<T>
的 argument,因此 Jockeys
可以是 Horses
、Cars
、Poneys
等。在我的 service 方法中,我需要将通用集合分配给 ObservableCollection<LoadedJockeys>
(已知类型)传递给 参数 ,得到这样的东西:
public async Task<ObservableCollection<T>> UpdateDataAsync<T>(ObservableCollection<T> genericCollection, int idFrom, int idTo, string jobType)
if (jobType.Contains("Horses"))
{
ObservableCollection<LoadedHorses> horses = genericCollection;
}
else if (jobType.Contains("Jockeys"))
{
ObservableCollection<LoadedJockeys> jockeys = genericCollection;
}
怎么做?
投射元素
ObservableCollection<LoadedJockeys> jockeys =
new ObservableCollection<LoadedJockeys>(genericCollection.Cast<LoadedJockeys>());
或者只取匹配的元素
ObservableCollection<LoadedJockeys> jockeys =
new ObservableCollection<LoadedJockeys>(genericCollection.OfType<LoadedJockeys>());