在微软的COM(组件对象模型)中,列集是将参数打包与解包,使得远程过程(remote procedure)可以进行的过程。 当接口指针要跨越COM单元(apartment)边界(也就是在COM库的实例之间跨越)时,必须要对其进行列集操作。 不同的参数以不同的方式进行列集。例如列集一个整形参数只需要简单地将这个值复制到消息缓存中(即便是这么一个简单的例子,也可能存在着跨计算机时需要处理的字节顺序)。列集一个数组是一个更复杂的过程。数组成员被以特定的顺序复制,从而使另一端可以精确地重构数组。 对于标准的列集方法(standard marshaling),代理对象(proxy)和存根代码(stub)对于接口来说都是系统宽度(systemwide)的资源,并且它们使用遵循标准协议的通告进行交互与通信。除了标准列集法还有另一个选择,那就是自定义的列集方法(custom marshaling)。对于任何一个给定的接口,对象可以选择COM提供的标准列集法或者是自定义列集法。一旦为给定的接口做出选择,这种选择将在一个对象的生命周期里一直保持不变。组件之间的通信列集用于组件的通信中。