我一直在使用VS2017将GUI脚本从另一种语言转换为C#。我的整个工作大部分都在工作,但是遇到了问题。 gui有一个列表视图,我通过在各个字段中输入数据或从CSV导入来手动填充。手动输入工作正常。 CSV导入也可以,但它会将标题行拉入列表视图。这是我用于按钮开始导入的代码:
private void import(object sender, RoutedEventArgs e)
{
OpenFileDialog xls = new OpenFileDialog();
xls.Multiselect = false;
xls.Filter = "CSV files (*.csv)|*.csv";
xls.InitialDirectory = Environment.GetFolderPath(Environment.SpecialFolder.DesktopDirectory);
xls.ShowDialog();
string ins;
if (xls.FileName != null)
{
FileStream srcFS;
srcFS = new FileStream(xls.FileName, FileMode.Open);
StreamReader srcSR = new StreamReader(srcFS, System.Text.Encoding.Default);
do
{
ins = srcSR.ReadLine();
if (ins != null)
{
string[] parts = ins.Split(',');
MyItems.Add(new MyItem
{
Name = parts[0],
CPU = parts[1],
RAM = parts[2],
IP = parts[3],
Subnet = parts[4],
PortGroup = parts[5],
Gateway = parts[6],
DNS = parts[7],
Description = parts[8],
Template = parts[9],
Host = parts[10],
Site = parts[11],
Folder = parts[12],
Datastore = parts[13],
Patch = parts[14],
HDD1_Size = parts[15],
HDD2_Size = parts[16],
HDD3_Size = parts[17],
HDD4_Size = parts[18],
HDD5_Size = parts[19],
HDD6_Size = parts[20],
HDD7_Size = parts[21],
HDD8_Size = parts[22],
HDD9_Size = parts[23],
HDD10_Size = parts[24]
});
}
} while (ins != null);
srcSR.Close();
}
}
我一直在谷歌上搜索跳过第一行的某些方法,但大多数建议都是逐行迭代并一次写一行,这会减慢导入过程(可能有数百个线)。只是好奇是否有一种简单的方法告诉StreamReader从哪里开始读取文件。
答案 0 :(得分:3)
你想读一条线然后扔掉它。只需在ins = srcSR.ReadLine();
上方添加do
。