繁体   English   中英

转换列表<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#

我有一个看起来像这样的字符串列表:

var rawData = new List<string>(){ "EUR/USD;123" , "EUR/GBP;321", "BTC/USD;2321"};

我有以下结构:

public class Data
{
    public string instrument { get; set; }
    public string positions { get; set; }
}

我的目标是有一个字符串数据列表,在';'上分开 char 并转换为对象列表。

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)

你知道我该怎么做吗?

您可以尝试Linq查询rawData

var processedData = rawData
  .Select(item => item.Split(';'))
  .Select(items => new Data() {
     instrument = items[0],
     positions  = items[1]
   })
  .ToList(); 
foreach(var rawString in rawData){
  var split = rawString.Split(";");

  processedData.Add(new Data(){ 
    instruments = split[0],
    positions = split[1]
  });
}

您可以尝试下面的代码

        private static void TestFunc()
    {
        var rawData = new List<string>() { "EUR/USD;123", "EUR/GBP;321", "BTC/USD;2321" };
        var processedData = new List<Data1>();

        foreach (var item in rawData)
        {
            var ins = item.Split(";")[0];
            var pos = item.Split(";")[1];
            processedData.Add(new Data1(ins, pos));
        }
    }

你可以使用 linq

void Main()
{
    var rawData = new List<string>() { "EUR/USD;123", "EUR/GBP;321", "BTC/USD;2321" };

    rawData.Select(s => 
            new Data() {instrument= s.Split(";")[0],positions = (s.Split(";").Count() > 1) ? s.Split(";")[1] : null})
        .ToList().Dump();

}

public class Data
{
    public string instrument { get; set; }
    public string positions { get; set; }
}

在此处输入图像描述

暂无
暂无

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

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM