程序问答   发布时间:2022-06-01  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了是否可以将流集合直接反序列化为字典?而不是使用 ToDictionary大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

如何解决是否可以将流集合直接反序列化为字典?而不是使用 ToDictionary?

开发过程中遇到是否可以将流集合直接反序列化为字典?而不是使用 ToDictionary的问题如何解决?下面主要结合日常开发的经验,给出你关于是否可以将流集合直接反序列化为字典?而不是使用 ToDictionary的解决方法建议,希望对你解决是否可以将流集合直接反序列化为字典?而不是使用 ToDictionary有所启发或帮助;

我有这个简单的股票和价格集合:

[
    { "name": "AABA","price": 60.6808},{ "name": "AAL","price": 33.3216}
]

股票类别:

public class Stock
{
    public String name { get; set; }
    public decimal Price { get; set; }
}

我的目标是将流直接反序列化为 IDicTinary,其中键是 name,值是 Stock(出于性能原因),我只能使用 de - 将流序列化为 IEnumerable<Stock>,然后将其转换为字典:

using (stream)
{
    IDicTinary<String,Stock> = await System.Text.json.Jsonserializer
            .DeserializeAsync<IEnumerable<Stock>>(stream.baseStream,new JsonserializerOptions() { PropertynameCaseInsensitive = false },ct); 
}

我能够实现这一目标的唯一方法是在末尾添加 ToDictionary(x => x.name,x => new Stock() { name = x.name,Price = x.Price })

是否可以直接将流作为字典读取?

喜欢:

    IDicTinary<String,Stock> = await System.Text.json.Jsonserializer
            .DeserializeAsync<IDicTinary<String,Stock>>(stream.baseStream,ct); 

解决方法

不,这不是字典的正确形状。您已经在做的是 IMO 执行此操作的正确方法。您可以尝试编写一个自定义反序列化来避免一个步骤,但与您已有的相比,这是一项大量的工作,并且有很多机会引入错误这将正常工作。

大佬总结

以上是大佬教程为你收集整理的是否可以将流集合直接反序列化为字典?而不是使用 ToDictionary全部内容,希望文章能够帮你解决是否可以将流集合直接反序列化为字典?而不是使用 ToDictionary所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签: