我想將多個可觀察元素(每個元素都返回一個Update對象)組合到單個字典對象中。將多個可觀察元素合併到單個字典中
這裏是什麼,我想實現一個樣本:
private IObservable<IDictionary<string, IUpdate>> CreateUpdateStreams(Product product)
{
var codeObservables = product.Codes.Select(code => CreateUpdateStream(code)).ToList();
//???
return pointObs.Merge().Select(update => ...);
}
private IObservable<IUpdate> CreateUpdateStream(string code)
{
...
//return an observable of IUpdate
}
- 我想,因爲他們進來到一個單一,更新詞典結合所有IUpdates的其中關鍵=代碼和值= IUpdate
- CreateUpdateStreams的調用者將知道該產品,並希望根據更新對每個Code對象的某些屬性進行更改。例如
產品=富
Product.Codes = {代碼1,代碼2,CODE3}
IDictionary的= {代碼1, 「A」},{代碼2, 「B」},{CODE3 ,「c」}
根據更新的值(在本例中爲a/b/c),將對相應的代碼進行不同的更改,例如設置一個屬性,如Code.State =「a」等
由於每個codeObservables將更新以不同的價格,Merge似乎是一個明智的起點。我不確定如何從各個observables更新更新字典對象,它保留了過去的值。
IUpdate是什麼樣的? – Enigmativity 2015-01-21 05:43:07
希望我做對了:),你需要Product.Codes.State,如果我是正確的重新思考你的實現和使用元組字典(元組與對象,螺母只是字符串)http://www.codeproject.com/Articles/193537/C-Tuples或http://stackoverflow.com/questions/955982/tuples-or-arrays-as-dictionary-keys-in-c-sharp – SilentTremor 2015-01-21 08:27:09