使用分隔符将字符串分隔为变量

时间:2014-01-27 16:32:20

标签: c#

我有一个字符串列表,其中每个列表项包含6个值。每个值用逗号分隔。我想使用Split(',')来分隔每个值,然后将每个值分配给变量

我是否必须使用数组来创建新变量,或者是否有办法将每个值分成现有变量?

目前我必须做的代码只是

foreach (String Item in ItemList)
{
    string id="";
    string slip = "";
    string qty = "";
    string itemEntered = "";
    string UOM = "";
    string desc = "";

    string[] vars = Item.Split(',');
}

2 个答案:

答案 0 :(得分:6)

您只需要通过索引提取拆分值:

string[] vars = line.Split(',');

string id   = vars[0];
string slip = vars[1];
string Qty  = vars[2];
string Item = vars[3];
string UOM  = vars[4];
string Desc = vars[5];

答案 1 :(得分:1)

考虑使用可用的CSV-Parser而不是手动执行此操作。但是,如果您的数据从不包含分隔符且严格,那么您的方法就可以了。你只需要在正确的索引处获取字符串:

List<Data> data = new List<Data>();
foreach (String line in ItemList)
{
    string[] vars = line.Split(',');
    if (vars.Length == 6)
    {
        int id;
        if(!int.TryParse(vars[0], out id))
            continue;
        string slip = vars[1];
        int qty;
        if(!int.TryParse(vars[2], out qty))
            continue;
        string item = vars[3];
        string uom = vars[4];
        string desc = vars[5];
        data.Add(new Data { ID = id, Slip = vars[1], Quantity = qty, Desc = desc, Item = item, UOM = uom });
    }
}

我还使用了自定义类:

public class Data
{
    public int ID { get; set; }
    public string Slip { get; set; }
    public int Quantity { get; set; }
    public string Item { get; set; }
    public string UOM { get; set; }
    public string Desc { get; set; }
}