我有一个字符串列表,其中每个列表项包含6个值。每个值用逗号分隔。我想使用Split(',')来分隔每个值,然后将每个值分配给变量
我是否必须使用数组来创建新变量,或者是否有办法将每个值分成现有变量?
目前我必须做的代码只是
foreach (String Item in ItemList)
{
string id="";
string slip = "";
string qty = "";
string itemEntered = "";
string UOM = "";
string desc = "";
string[] vars = Item.Split(',');
}
答案 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; }
}