c# - 使用来自两个 IObservableCache 的元组键创建单个 ObservableCache
问题描述
我有两个 IObservableCache,每个都有独立的键。我正在尝试连接它们,以便添加/删除的任何键都以多对多的方式组合。生成的缓存将使用由来自第一个和第二个输入缓存的键组成的值元组进行键控。在我的内部转换中,我使用每个键创建一个新对象,并公开值元组,该值元组可用作结果缓存的键。
我尝试了几种不同的方法,但似乎都没有奏效。(创建了初始缓存,但对输入缓存的更新似乎不会刷新输出缓存)这是一次尝试的示例:
var items = inputANames.Connect().Transform(a =>
inputBNames.Connect().Transform(b =>
{
var val = new SomeObject(a, b);
Debug.WriteLine($"Item added: {val.KeyTuple}");
return val;
}, true).AsObservableCache(), true).RemoveKey().TransformMany(x => x.Items).AutoRefresh();
...
_inputSubscription = items.AddKey(x => x.KeyTuple).PopulateInto(_myCombinedCache);
我尝试过使用 SQL 风格的连接扩展方法,但我认为这不会起作用,因为它需要匹配输入之间的键。
解决方案
推荐阅读
- c# - 与此 Linq 表达式等效的 lambda 是什么?
- node.js - 不在firebase上工作,但在本地主机上工作
- django - 将提交表单中的文本呈现为 SO 的正文表单
- java - OutputStream.write 仅在 Java 中写入部分字符串
- python - TensorFlow 神经网络作为 API?
- reactjs - 使用 [key:string]: any 来避免需要额外的泛型函数?
- android - 支持的最低 gradle 版本为 4.4。当前版本是 4.1
- azure - 在操作级别停止全局级别的策略执行
- java - 如何在 Spring Boot 中为只有外键的表映射/创建实体类
- html - Flexbox 无法移动内容