首页 > 解决方案 > 将列表转换为纯字符串,就像字符串模式一样

问题描述

请检查下面的代码。我正在尝试将项目列表转换为具有特定字符串模式的纯字符串,您可以在代码注释中找到该模式。:一件事是在转换期间,我还需要为 ASIN 属性删除任何空格和任何字符。如您所见,我已经尝试过.ToString(),但这无法转换列表值。知道我该怎么做吗?

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ConsoleApp1
{
    class Program
    {
        static void Main(string[] args)
        {

            //asign some demo data
            var tpd = new List<ThirdPartyData>();

            tpd.Add(new ThirdPartyData { ASIN = "mark: NsQf8", type = 0, Price = 7, IsPrime = 1, OutOfStock = 1 });
            tpd.Add(new ThirdPartyData { ASIN = "fD5tsQ ", type = 1, Price = 13, IsPrime = 0, OutOfStock = 0 });
            tpd.Add(new ThirdPartyData { ASIN = "notmark: tvQtsu", type = 1, Price = 14, IsPrime = 1, OutOfStock = 1 });

            //this tpd list should be converted string like bellow-

            //Converted String output should be like this- 'ASIN-NsQf8,type-0,Price-7,IsPrime-1,OutOfStock-1:ASIN-fD5tsQ,type-1,Price-13,IsPrime-0,OutOfStock-0:ASIN-tvQtsu,type-1,Price-14,IsPrime-1,OutOfStock-1'

            string output = tpd.ToString();//i tried it not works

        }

    }

    class ThirdPartyData
    {
        public string ASIN { get; set; }
        public int type { get; set; }
        public int Price { get; set; }
        public int IsPrime { get; set; }
        public int OutOfStock { get; set; }

    }
}

标签: c#

解决方案


首先,您定义一个方法来将您的自定义类转换为您想要的字符串表示形式:

class ThirdPartyData
{
    public string ASIN { get; set; }
    public int type { get; set; }
    public int Price { get; set; }
    public int IsPrime { get; set; }
    public int OutOfStock { get; set; }

    public string ToExport()
    {
        return $"ASIN-{ASIN},type-{type},...";
    }
}

然后你将你的类实例映射到它们的字符串表示:

string[] tpdStrings = tpd.Select(t => t.ToExport()).ToArray();

然后你使用你想要的分隔符加入这些字符串:

string output = String.Join(":", tpdStrings);

推荐阅读