简体   繁体   English

在foreach中拆分几个字符串

[英]Split several strings in a foreach

I have these records: 我有这些记录:

Value  Part   Qty  
A      PartA  QtyA
B      PartB  QtyB
C      PartC  QtyC

I'm concatenating each column in different strings: 我将每一列连接到不同的字符串中:

stringValue = A~B~C
stringPart = PartA~PartB~PartC
stringQty = QtyA~QtyB~QtyC

I want to split each string to get the original row value according to the position but I'm not sure how to do it any insight would be appreciate it. 我想根据位置拆分每个字符串以获取原始行值,但是我不确定如何执行此操作,因此任何见识的人都将不胜感激。

Thanks 谢谢

String[] yourfirstrow = stringValue.Split(new string[] { "~" }, StringSplitOptions.None);

//yourfirstrow[0] first cell value
//yourfirstrow[1] second cell value
//yourfirstrow[2] third cell value

Create some data storage 创建一些数据存储

class Model
{
    string Value {get; set;}
    string Part {get; set;}
    string Quantity {get; set;}

}

Parse and format 解析和格式化

private List<Model> _list = new List<Model>();

void MakeList()
{
    string[] values = "A~B~C".Split("~".ToCharArray(), StringSplitOptions.None);
    string[] parts = "PartA~PartB~PartC"("~".ToCharArray(), StringSplitOptions.None);
    string[] qtys = "QtyA~QtyB~QtyC"("~".ToCharArray(), StringSplitOptions.None);

    for (int i = 0; i < values.Length; i++)
    {
        var item = new Model(){ Value = values[i], Part = parts[i], Quantity = qtys[i]};
        _list.Add(item);
    }

}

string[] GenerateCommaSeparatedRecords()
{
    return _list.Select(x => string.Format("{0},{1},{2}", x.Value, x.Part, x.Quantity)).ToArray();
}

You can generate any output you wish 您可以生成任何您想要的输出

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

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