【发布时间】:2020-09-10 09:07:52
【问题描述】:
网络核心项目。我正在尝试从我的 c# 代码中创建以下对象。
{
"temperature_Mean_1_0":
{"Header":"Air Temp","Type":"temperature","Height":"2","SubType":"Min","BoomOrientation":"0.0",
"NorthReference":"true_north","Unit":"C","Scale":
"2.0","Offset":"0.0","DVLpyName":"temperature_1_1","FirstData":"26.98","Converted":"26.98",
"AssociatedDirection":"1"
}
}
下面是我的代码
IEnumerable<MastSetupInformation> mastSetupInformations = await _mastSetupInformationRepository.GetAsync(x => Ids.Contains(x.Id));
var data = (from l in mastSetupInformations
select (new Dictionary<string, object> { { l.Channel,
new MastSetupInformationAdfList {
MastSetupId = l.Id ,
Header = l.Header,
FirstData = l.FirstData,
Type = l.Type,
SubType = l.SubType,
Unit = l.Unit,
Height = l.Height,
BoomOrientation = l.BoomOrientation,
Scale = l.Scale,
Offset = l.Offset,
Converted = l.Converted,
DvlpyName = l.DvlpyName,
AssociatedDirection = l.AssociatedDirection,
NorthReference = MastLocation.NorthReference
} } }));
但在我的代码中,数据变量保持低于值
[
{
"temperature_Mean_1_0": {
"MastSetupId": 903,
"Header": "Horizontal Wind Speed Std. Dev. at 99m [m/s]",
"FirstData": "1.45",
"Type": "WindDirection",
"SubType": "STDev",
"Unit": "m/s",
"Height": 50,
"BoomOrientation": 0,
"Scale": 3,
"Offset": 0
}
}
]
我在下面尝试了一些东西
object dataArray = data.Cast<object>().ToArray();
这很有效,所以我正在努力寻找我所缺少的东西。有人可以帮我理解这个问题。任何帮助,将不胜感激。谢谢
【问题讨论】:
-
您在
data中有一个字典集合。你真正想要的是什么?某个对象的扁平化列表? -
再举一个例子,写
var data是在掩盖你做错了什么。请尝试显式编写类型,而不是使用var。这将为您提供有关您的问题的更多详细信息。它会让我们了解您实际想要实现的目标。 -
也许你想要
data.SelectMany(x => x.Values).ToArray() -
您是否只是说明您的代码正在返回一个项目列表,并且您想要一个对象?您声明的想要的对象与您所说的最终得到的对象列表中的唯一对象 非常相似。如果您想要的只是一个对象,而不是一个可枚举的对象,那么您可以只使用
var result = data.FirstOrDefault()?哦,正如其他人指出的那样,您的示例和内容都是 JSON……但我假设(因为您正在展示 JSON)您很高兴可以从您的 .Net 对象中获取 JSON…… -
object dataArray = data.Cast<object>().ToArray();- 试试var dataArray = data.Cast<object>().ToArray();- 虽然不确定演员阵容