我創建了一個 foreach,它讀取 .csv 檔案中的各個欄位并將它們插入到 xml 檔案中。我想知道在讀取一系列行(例如 10)后是否??有可能阻塞回圈。我能怎么做?
List<string> lines = File.ReadAllLines(path).ToList();
lines.RemoveAt(0);
XmlTextWriter writer = new XmlTextWriter(savepath, Encoding.UTF8);
writer.WriteStartDocument();
writer.WriteStartElement("DC8_Recipe");
foreach (var line in lines){
var csvItem = line.Split(';');
writer.WriteStartElement("DC8_Recipe");
writer.WriteAttributeString("PlantNo", "01");
writer.WriteAttributeString("FactoryNo", "01");
writer.WriteAttributeString("No", csvItem[0].Replace('"', ' '));
writer.WriteAttributeString("Name", csvItem[2]);
writer.WriteAttributeString("ShortName", csvItem[3]);
writer.WriteEndElement();
writer.WriteStartElement("RecipeSetValueRow");
writer.WriteAttributeString("SetValue", csvItem[12]);
writer.WriteStartElement("Material");
writer.WriteAttributeString("No", csvItem[10]);
writer.WriteEndElement();
writer.WriteEndElement();
}
writer.WriteEndElement();
writer.WriteEndDocument();
writer.Close();
uj5u.com熱心網友回復:
有多種方法可以完成您的要求。
#1 - decalre 一個計數器int counter=0并使用這個變數作為跳出回圈的條件
if ((counter ) > 10 ) {break;}
#2(推薦方式) - 使用IEnumerable.Take(10)呼叫Take()將回傳指定數量的連續元素
復制下面的代碼并自己嘗試
List<string> lines = File.ReadAllLines(path).ToList();
lines.RemoveAt(0);
XmlTextWriter writer = new XmlTextWriter(savepath, Encoding.UTF8);
writer.WriteStartDocument();
writer.WriteStartElement("DC8_Recipe");
foreach (var line in lines.Take(10))
{
var csvItem = line.Split(';');
writer.WriteStartElement("DC8_Recipe");
writer.WriteAttributeString("PlantNo", "01");
writer.WriteAttributeString("FactoryNo", "01");
writer.WriteAttributeString("No", csvItem[0].Replace('"', ' '));
writer.WriteAttributeString("Name", csvItem[2]);
writer.WriteAttributeString("ShortName", csvItem[3]);
writer.WriteEndElement();
writer.WriteStartElement("RecipeSetValueRow");
writer.WriteAttributeString("SetValue", csvItem[12]);
writer.WriteStartElement("Material");
writer.WriteAttributeString("No", csvItem[10]);
writer.WriteEndElement();
writer.WriteEndElement();
}
writer.WriteEndElement();
writer.WriteEndDocument();
writer.Close();
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/365284.html
