小编ijj*_*jjo的帖子

C#.net协议缓冲区 - protobuf-net支持序列化对象值字典?

我是协议缓冲区的新手,我正在为VS2010使用protobuf-net.从我在这里阅读协议缓冲区中的字典,似乎protobuf不能将具有对象类型的字典序列化为值.但在他的网站上我读到了这个:

关于类型的说明

支持的:

自定义类:标记为数据契约具有Silverlight的无参数构造函数:公共许多常见原语等单维数组:T [] List/IList Dictionary/IDictionary任何实现IEnumerable并具有Add(T)方法的类型代码假定类型在选定成员周围是可变的.因此,不支持自定义结构,因为它们应该是不可变的.

这似乎得到了支持.

我可以像这样成功编译一个对象列表:

message ValuesObject {
    optional int32 SomeVal = 1;
    repeated SomeClass ListOfSomeClassTypes = 2;
}
Run Code Online (Sandbox Code Playgroud)

这适用于List<SomeClass>.为什么我不能使用protobuf-net序列化Dictionary<int, SomeClass>?该序列化的消息是什么样的Dictionary<int, SomeClass>

c# protocol-buffers protobuf-net

8
推荐指数
1
解决办法
5839
查看次数

Linq 按十进制字段排序就像字符串一样?

我完全困惑,在互联网上找不到任何关于此的信息,所以我一定是做错了什么?

 _positionsRepo.GetAllTrades().OrderByDescending(x => x.TotalPLPercent).ToList();
Run Code Online (Sandbox Code Playgroud)

TotalPLPercent 是一个十进制字段。结果顺序是这样的:

96.76
95.54
8.54
75.55
231.22
13
Run Code Online (Sandbox Code Playgroud)

显然,这是错误的。我针对另一个双精度字段测试了排序,它按预期工作。关于 C# 中的小数,我在这里遗漏了什么?

我正在使用 Mongo DB C# 驱动程序。

c# linq

3
推荐指数
1
解决办法
3032
查看次数

如何将RXJS Observable流划分为相等的N大小的数组?

假设我有一个从数组创建的Observable流,如下所示:

const items: Items = [{},{},{},{},{},...];
const obs$ = from(items).pipe(
    mergeMap(items => {
        return this.getData(items);
    })
);
Run Code Online (Sandbox Code Playgroud)

正如此代码所示,getData()将为数组中的每个项调用.我想要做的是将items数组分成N个相等大小的数组,然后发出这些数组.然后getData()将使用单个数组而不是原始项数组中的每个项调用.

基本上我需要toArray()运算符的变体,但只需要预先定义的流的部分.

reactive-programming rxjs

3
推荐指数
1
解决办法
78
查看次数