【问题标题】:Split several strings in a foreach在 foreach 中拆分多个字符串
【发布时间】:2018-01-23 01:55:36
【问题描述】:

我有这些记录:

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

我将每一列连接到不同的字符串中:

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

我想根据位置拆分每个字符串以获取原始行值,但我不知道该怎么做,任何见解都会不胜感激。

谢谢

【问题讨论】:

  • Split '~' 上的字符串。除非您的表格缺少单元格,否则每个数组都应在同一索引上匹配。
  • 我感觉对于您要解决的任何总体问题,可能有更好的解决方案。你为什么要把数据和列连接成字符串,然后再把它们分成数组?为什么不直接填充列表呢?你对琴弦做其他事情吗?使用强类型对象来表示您的数据怎么样?
  • 嗨@RufusL 是这样的,因为值在表单上,​​我要将它们传递给任务,该任务将执行另一个逻辑来创建作业等,跨度>
  • 我看不出该过程如何阻止您将数据解析为包含相关属性的对象列表,例如 class MyThing { public string Value { get; set; } public string Part { get; set; } public int Qty { get; set; } } 和 List<MyThing> thingsFromFormData 然后您将其传递给任务。如果您稍后只是要将数据转换为其他内容,则至少不需要将列连接成字符串(除非您需要字符串来表示您未显示的内容)。

标签: c# foreach split


【解决方案1】:
String[] yourfirstrow = stringValue.Split(new string[] { "~" }, StringSplitOptions.None);

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

【讨论】:

  • 那不是yourFirstColumn吗?
【解决方案2】:

创建一些数据存储

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

}

解析和格式化

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();
}

你可以生成任何你想要的输出

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-08-24
    • 1970-01-01
    • 2020-05-30
    • 1970-01-01
    • 2019-08-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多