![](/img/trans.png)
[英]How to convert List<KeyValuePair<int,int>> to int[][]?
[英]How to convert IChangeSet<int> to List<int>?
我需要將IObservable<int>
轉換為IObservable<bool>
。 為此,我需要observableSelectedQuantity
最后兩個值。
IObservable<int> observableSelectedQuantity;
public Constructor()
{
observableSelectedQuantity = Item.WhenAnyValue(x => x.SelectedQuantity);
observableSelectedQuantity.ToObservableChangeSet().Select(ConvertToBool).Subscribe();
}
private bool ConvertToBool(IChangeSet<int> arg)
{
//Inside logic
}
我認為我可以從某種列表中獲取最后兩個元素。 所以我將IObservable<int>
轉換為IChangeSet<int>
,然后在ConvertToBool
編寫此代碼:
var a = arg.ToList();
我預計每次將新元素添加到observableSelectedQuantity
, ToList
都會生成包含先前元素和最后一個元素的新列表。 但是每次添加新元素時, ToList()
生成一個列表,其中只有一個項目是observableSelectedQuantity
最后一個元素。 是否可以使用IChangeSet
解決我的問題? 或者我需要改變我的方式來訪問observableSelectedQuantity
列表值?
我預計每次將新元素添加到
observableSelectedQuantity
,ToList
都會生成包含先前元素和最后一個元素的新列表。
不,它不需要,但您不需要IChangeSet<int>
來跟蹤來自IObservable<int>
的最后兩個值。 您可以將先前的值存儲在變量中,例如:
IObservable<int> observableSelectedQuantity = this.WhenAnyValue(x => x.SelectedQuantity);
IObservable<bool> observableOfBools = observableSelectedQuantity.Select(i => ConvertToBool(i));
...
int? previousValue = null;
private bool ConvertToBool(int currentValue)
{
bool returnValue = ...; //logic
previousValue = currentValue;
return returnValue;
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.