通过F#中的公共ID将多个数据列表合并在一起
我有4个不同来源的多个数据列表,其中有一组共同的ID,我希望根据ID合并在一起,基本上以新列表结束,每个ID一个,每个源一个条目。
来自4个源中的每个源的输出列表中的对象看起来像这样:
type data = {ID : int; value : decimal;}
所以,例如我会:
let sourceA = [data1, data2, data3];
let sourceB = [data1, data2, data3];
let sourceC = [data1, data2, data3];
let sourceD = [data1, data2, data3];
(我意识到这段代码无效,只是试图给出一个基本的想法......列表实际上是从数据库中提取和生成的)
然后我想获取sourceA,sourceB,sourceC和sourceD并将它们处理成包含如下对象的列表:
type dataByID = {ID : int; valueA : decimal; valueB : decimal; valueC : decimal; valueD : decimal; }
...然后我可以用CSV打印出来,其中第一列是ID,而coulmns 2-5是来自A-D源的数据,对应于该行中的ID。
我对F#完全不熟悉,那么处理这些数据的最佳方法是什么,以便我通过ID匹配所有源数据值?
没有找到相关结果
已邀请:
1 个回复
壤欠攻混
获取包含输入列表中唯一ID的列表以及与ID关联的所有值。这可以通过以下方式完成:
如果要关联源(是否为
,
map`操作以添加数据源的索引:
现在,
还包含数据源的索引(从1到3),因此在迭代值时,您可以使用索引来查找项目来自哪个数据源。甚至可以使用
编写更好的版本来迭代数据源列表并自动为所有值添加索引: