[英]How do I get a array variable to save as the file name output?
我正在嘗試編寫幾乎沒有編程經驗的C#程序,以獲取一個csv文件並輸出一個XML文件。 此方法有效,但我現在嘗試將程序修改為它將為CSV的每一行輸出XML文件的位置,並將XML文件命名為與fields [0]“ name”值相等。 我不確定自己在做什么錯,編譯器在說當前上下文中不存在名稱“ fields”。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;
using System.Xml.Linq;
namespace CSVtoXML
{
class Program
{
static void Main(string[] args)
{
// Read into an array of strings.
string[] source = File.ReadAllLines("import.csv");
foreach (string line in source)
{
XElement cust = new XElement("Root",
from str in source
let fields = str.Split(',')
select new XElement("other_asset",
new XElement("name", fields[0]),
new XElement("status", new XElement("name", fields[1])),
new XElement("asset_type", new XElement("name", fields[2])),
new XElement("ip", fields[3]),
new XElement("manufacturer", fields[4]),
new XElement("model", fields[5]),
new XElement("serial_number", fields[6]),
new XElement("site", new XElement("name", fields[7])),
new XElement("department", new XElement("name", fields[8])),
new XElement("custom_field",
new XElement("location", fields[9]),
new XElement("Mac_Address", fields[10]),
new XElement("End_User", fields[11]),
new XElement("Notes", fields[12])
)
)
);
cust.Save(fields[0] + ".xml");
}
}
}
}
編譯器是正確的。 fields
是局部變量,僅在LINQ查詢中可見。 但我認為您根本不需要LINQ查詢。 只需將line.Split(',')
分配給本地變量,然后使用它來創建XDocument
和文件名。
就像是
foreach (string line in source)
{
var fields = line.Split(',');
XElement cust =
new XElement("Root",
new XElement("other_asset",
new XElement("name", fields[0]),
new XElement("status", new XElement("name", fields[1])),
new XElement("asset_type", new XElement("name", fields[2])),
new XElement("ip", fields[3]),
new XElement("manufacturer", fields[4]),
new XElement("model", fields[5]),
new XElement("serial_number", fields[6]),
new XElement("site", new XElement("name", fields[7])),
new XElement("department", new XElement("name", fields[8])),
new XElement("custom_field",
new XElement("location", fields[9]),
new XElement("Mac_Address", fields[10]),
new XElement("End_User", fields[11]),
new XElement("Notes", fields[12])
)
)
);
cust.Save(fields[0] + ".xml");
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.