gpt4 book ai didi

c# - .Value 打印为 Amazon.DynamoDBv2.DocumentModel.DynamoDBBool 而不是 'true' 或 'false'

转载 作者:行者123 更新时间:2023-11-30 21:30:16 24 4
gpt4 key购买 nike

当尝试对 DynamoDB 查询(文档)的输出进行 Console.Writeline 时,我得到“Amazon.DynamoDBv2.DocumentModel.DynamoDBBool”而不是“true”或“False”值。如何打印来自 DynamoDB 的任何给定值的正确 ToString() 表示,无论它是字符串、整数还是 bool 值。

foreach (var resultDocument in resultDocs)
{
foreach (var resultDocItem in resultDocument)
{
printString += $",{resultDocItem.Value.ToString()}";
}
}

此代码在命中 bool 值而不是“true”或“false”时打印“Amazon.DynamoDBv2.DocumentModel.DynamoDBBool”

最佳答案

你从 foreach 中得到了什么是 KeyValuePair<string, DynamoDBEntry>默认为 ToString() .要获得您实际需要的字符串表示形式,您需要使用内置的强制转换运算符来返回您正在寻找的实际值。

专用于DynamoDBBool它可能看起来像这样:

var doc = new Document();
doc.Add("aaa", new DynamoDBBool(true));
foreach(var item in doc)
{
var s = item.Value is DynamoDBBool ? item.Value.AsBoolean().ToString() : item.Value.ToString();
Console.WriteLine($"{item.Key} : {s}");
}

为了更轻松地涵盖所有选项,我们可以使用 doc只是键值对的 JSON 文档。这会将文档转换为 JSON,然后打印每个条目的正确字符串表示形式。

var doc = new Document();
doc.Add("aaa", new DynamoDBBool(true));
var dict = JsonConvert.DeserializeObject<IDictionary<string, string>>(doc.ToJson());
foreach(var item in dict)
{
Console.WriteLine(item.Value);
}

关于c# - .Value 打印为 Amazon.DynamoDBv2.DocumentModel.DynamoDBBool 而不是 'true' 或 'false',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54576918/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com