【问题标题】:c# convert list to arrayc# 将列表转换为数组
【发布时间】: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 =&gt; x.Values).ToArray()
  • 您是否只是说明您的代码正在返回一个项目列表,并且您想要一个对象?您声明的想要的对象与您所说的最终得到的对象列表中的唯一对象 非常相似。如果您想要的只是一个对象,而不是一个可枚举的对象,那么您可以只使用var result = data.FirstOrDefault()?哦,正如其他人指出的那样,您的示例和内容都是 JSON……但我假设(因为您正在展示 JSON)您很高兴可以从您的 .Net 对象中获取 JSON……
  • object dataArray = data.Cast&lt;object&gt;().ToArray(); - 试试var dataArray = data.Cast&lt;object&gt;().ToArray(); - 虽然不确定演员阵容..

标签: c# arrays .net


【解决方案1】:

看起来像一个 JSON 对象。尝试使用 JSON.Convert() 和 JSON.Deserialize() 方法。 通过这个 - Deserialize JSON with C#

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-04-30
    • 2014-07-13
    • 1970-01-01
    • 2013-11-06
    • 2020-10-06
    • 1970-01-01
    • 2015-08-26
    相关资源
    最近更新 更多