作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
当尝试对 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/
我是一名优秀的程序员,十分优秀!