2014-01-27 5 views
0

У меня есть список строк, где каждый элемент списка содержит 6 значений. Каждое значение разделяется запятой. Я хочу использовать Split (',') для разделения каждого значения, а затем присваивать каждому переменнуюИспользование разделителей для разделения строки на переменные

Нужно ли использовать массив для создания новых переменных или есть способ разделить каждое значение на существующие переменные?

В настоящее время код, который я должен сделать это не что иное, как

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

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

ответ

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

Рассматривайте использовать доступную 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; } 
} 
Смежные вопросы