简体   繁体   English

如何从列表转换<object>列出<t>在 c# 中?<div id="text_translate"><p> 我有一个 Class:</p><pre> public class Element { public List&lt;object&gt; objects { get; set; } }</pre><p> 还有一个 Class:</p><pre> public class Node { public long id { get; set; } }</pre><p> 我传入一个List&lt;object&gt; nodes 。 那么有什么方法可以将这些List&lt;object&gt; objects转换为List&lt;Node&gt; nodes ?</p><p> 我试过这种方式,但它不起作用List&lt;Node&gt; nodes = objects.Select(s =&gt; (nodes)s).ToList();</p></div></t></object>

[英]How to convert from List<object> to List<T> in c#?

I have a Class:我有一个 Class:

public class Element
{
   public List<object> objects { get; set; }
}

And a Class:还有一个 Class:

public class Node
    {
        public long id { get; set; }
    }

I pass in a List<object> nodes .我传入一个List<object> nodes So is there any way I can convert those List<object> objects to List<Node> nodes ?那么有什么方法可以将这些List<object> objects转换为List<Node> nodes

I tried this way but it doesn't work List<Node> nodes = objects.Select(s => (nodes)s).ToList();我试过这种方式,但它不起作用List<Node> nodes = objects.Select(s => (nodes)s).ToList();

Try this: where listObject is the List<object>试试这个:其中 listObject 是List<object>

List<Node> newlist = listObject.Cast<Node>().ToList();

Your JSON is this:你的 JSON 是这样的:

{  "type": "way",
  "id": 1000828751,
  "nodes": [
    9238280575,
    9238280590,
    9238280589,
    9238280576,
    9238280592,
    9238280577,
    9238280578,
    9238280575
  ],
  "tags": {
    "amenity": "fire_station",
    "name": "Đội Cảnh sát PCCC & CNCH quận Long Biên"
  }
}

When I use https://json2csharp.com to create the C# classes I get this:当我使用https://json2csharp.com创建 C# 类时,我得到了这个:

public class Root
{
    public string type { get; set; }
    public int id { get; set; }
    public List<object> nodes { get; set; }
    public Tags tags { get; set; }
}

public class Tags
{
    public string amenity { get; set; }
    public string name { get; set; }
}

And that does successfully deserialize your JSON, but that's where you're at, trying to convert List<object> to List<long> .这确实成功地反序列化了您的 JSON,但这就是您所在的位置,尝试将List<object>转换为List<long> However, the tool could have done better had it defined nodes like this:但是,如果它像这样定义nodes ,该工具可能会做得更好:

public class Root
{
    ...
    public List<long> nodes { get; set; }
    ...
}

That now works without any further code changes.现在无需任何进一步的代码更改即可工作。

如何转换列表<object>至 Json | C#<div id="text_translate"><p> 我有一个由对象组成的列表,每个 object 有 5 个数据。 我需要将该列表转换为 json,但使用序列化它会填满空的 json。</p><p> 有谁知道我可能做错了什么?</p><pre> foreach (DataRow dtRow in dtAlarmas.Rows) { String Name = dtRow["Name"].ToString(); String ID = dtRow["ID"].ToString(); String AlarmText = dtRow["AlarmText"].ToString(); String AlarmTimeNoNula = dtRow["AlarmTimeNoNula"].ToString(); lstAlarmasNoTratadas.Add(new Ondoan.DatosAux.Alarmas.AlarmaNoTratadaModel(dtRow["Name"].ToString(), Convert.ToInt32(dtRow["ID"]), dtRow["Class"].ToString(), dtRow["AlarmText"].ToString(), dtRow["AlarmTimeNoNula"].ToString())); } string sParams = JsonConvert.SerializeObject(lstAlarmasNoTratadas);</pre><p> 转换后的 sParams 值 = "[{}]"</p><p> Class Ondoan.DatosAux.Alarmas.AlarmaNoTratadaModel</p><pre> using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace Ondoan.DatosAux.Alarmas { public class AlarmaNoTratadaModel { private string Name; private int ID; private string Class; private string AlarmText; private string AlarmaTimeNoNula; public AlarmaNoTratadaModel(string Name, int ID, string Class, string AlarmText, string AlarmaTimeNoNula) { // TODO: Complete member initialization this.Name = Name; this.ID = ID; this.Class = Class; this.AlarmText = AlarmText; this.AlarmaTimeNoNula = AlarmaTimeNoNula; } public class AlarmaNoTratadasModel { public AlarmaNoTratadasModel() { } public AlarmaNoTratadasModel(String Name, Nullable&lt;System.Int32&gt; ID, String Class, String AlarmText, String AlarmaTimeNoNula) { this.Name = Name; this.ID = ID; this.Class = Class; this.AlarmText = AlarmText; this.AlarmaTimeNoNula = AlarmaTimeNoNula.ToString(); } public System.String Name { get; set; } public Nullable&lt;System.Int32&gt; ID { get; set; } public System.String Class { get; set; } public System.String AlarmText { get; set; } public System.String AlarmaTimeNoNula { get; set; } } } }</pre></div></object> - How to Convert List<Object> to Json | C#

转换列表<string>列出<object>在 C#<div id="text_translate"><p> 我有一个看起来像这样的字符串列表:</p><pre> var rawData = new List<string>(){ "EUR/USD;123", "EUR/GBP;321", "BTC/USD;2321"};</pre><p> 我有以下结构:</p><pre> public class Data { public string instrument { get; set; } public string positions { get; set; } }</pre><p> 我的目标是有一个字符串数据列表,在';'上分开 char 并转换为对象列表。</p><pre> var processedData = new List<Data>(); // processedData[0] ( instrument = EUR/USD, positions = 123 ) // processedData[1] ( instrument = EUR/GBP, positions = 321) // processedData[2] ( instrument = BTC/USD, positions = 2321)</pre><p> 你知道我该怎么做吗?</p></div></object></string> - Convert List<string> to List<object> in C#

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 从object [,]转换为List <Class> 在C#中 - Convert from object[,] to List<Class> in C# 我无法将列表<object []>转换为C#中的列表<T []> - I cant convert list<object[]> to list <T[]> in C# 如何将对象转换为列表 <string> 在c#? - How to convert Object to List<string> in c#? 如何转换列表<object>至 Json | C#<div id="text_translate"><p> 我有一个由对象组成的列表,每个 object 有 5 个数据。 我需要将该列表转换为 json,但使用序列化它会填满空的 json。</p><p> 有谁知道我可能做错了什么?</p><pre> foreach (DataRow dtRow in dtAlarmas.Rows) { String Name = dtRow["Name"].ToString(); String ID = dtRow["ID"].ToString(); String AlarmText = dtRow["AlarmText"].ToString(); String AlarmTimeNoNula = dtRow["AlarmTimeNoNula"].ToString(); lstAlarmasNoTratadas.Add(new Ondoan.DatosAux.Alarmas.AlarmaNoTratadaModel(dtRow["Name"].ToString(), Convert.ToInt32(dtRow["ID"]), dtRow["Class"].ToString(), dtRow["AlarmText"].ToString(), dtRow["AlarmTimeNoNula"].ToString())); } string sParams = JsonConvert.SerializeObject(lstAlarmasNoTratadas);</pre><p> 转换后的 sParams 值 = "[{}]"</p><p> Class Ondoan.DatosAux.Alarmas.AlarmaNoTratadaModel</p><pre> using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace Ondoan.DatosAux.Alarmas { public class AlarmaNoTratadaModel { private string Name; private int ID; private string Class; private string AlarmText; private string AlarmaTimeNoNula; public AlarmaNoTratadaModel(string Name, int ID, string Class, string AlarmText, string AlarmaTimeNoNula) { // TODO: Complete member initialization this.Name = Name; this.ID = ID; this.Class = Class; this.AlarmText = AlarmText; this.AlarmaTimeNoNula = AlarmaTimeNoNula; } public class AlarmaNoTratadasModel { public AlarmaNoTratadasModel() { } public AlarmaNoTratadasModel(String Name, Nullable&lt;System.Int32&gt; ID, String Class, String AlarmText, String AlarmaTimeNoNula) { this.Name = Name; this.ID = ID; this.Class = Class; this.AlarmText = AlarmText; this.AlarmaTimeNoNula = AlarmaTimeNoNula.ToString(); } public System.String Name { get; set; } public Nullable&lt;System.Int32&gt; ID { get; set; } public System.String Class { get; set; } public System.String AlarmText { get; set; } public System.String AlarmaTimeNoNula { get; set; } } } }</pre></div></object> - How to Convert List<Object> to Json | C# 将列表转换为对象C# - Convert a list to a object c# C#:如何将对象列表转换为该对象的单个属性列表? - C#: How to convert a list of objects to a list of a single property of that object? 如何将C#对象列表转换为协议缓冲区列表? - How to convert C# object list to a protocol buffer list? C# 转换列表<object>列出<hashtable> - C# Convert List<object> to list<hashtable> 将带有列表的JS对象转换为C#列表 - Convert JS object with a list to C# list 转换列表<string>列出<object>在 C#<div id="text_translate"><p> 我有一个看起来像这样的字符串列表:</p><pre> var rawData = new List<string>(){ "EUR/USD;123", "EUR/GBP;321", "BTC/USD;2321"};</pre><p> 我有以下结构:</p><pre> public class Data { public string instrument { get; set; } public string positions { get; set; } }</pre><p> 我的目标是有一个字符串数据列表,在';'上分开 char 并转换为对象列表。</p><pre> var processedData = new List<Data>(); // processedData[0] ( instrument = EUR/USD, positions = 123 ) // processedData[1] ( instrument = EUR/GBP, positions = 321) // processedData[2] ( instrument = BTC/USD, positions = 2321)</pre><p> 你知道我该怎么做吗?</p></div></object></string> - Convert List<string> to List<object> in C#
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM