简而言之,我通过创建执行行 ID 连接的 CLR 聚合将自己编程到了一个角落,所以我说:
select SumKeys(id), name from SomeTable where name='multiple rows named this'
我得到类似的东西:
SumKeys name
-------- ---------
1,4,495 multiple rows named this
但是当 SumKeys 超过 8000 个字符时它就会消失,我认为我对此无能为力。
作为一个快速修复(对于我的应用程序来说,只有 1% 的失败率),我想我可以压缩字符串,并且我想你们中的一些聪明人可能知道一种巧妙的方法来做到这一点。
类似于 0-9 和逗号的 base64 之类的东西?
最佳答案
如果你找到更合理的数据存储方式(也许是 HashSet),效果会更好......
但对于压缩,请尝试常规 System.IO.Compression.GZipStream ( http://msdn.microsoft.com/en-us/library/system.io.compression.gzipstream.aspx ) 并根据需要将结果字节数组转换为 base64 字符串...或存储为字节数组。
关于c# - 是否有快速且普通的 C# 代码/算法来将逗号分隔的数字字符串压缩到接近最大信息密度?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6023117/