如何忽略一个字段并将忽略的字段设置为函数中的全局变量?

Ram*_*mHS 5 c# field global-variables

我有这个代码来组合2个不同的csv文件.

try
{
    var jobStartLine = File.OpenText(PackAuftrag).ReadLine();
    var comparisonField = jobStartLine.Split(';')[4];

    foreach (var line in File.ReadAllLines(BoxData))
    {
        var fields = line.Split(new char[] {';'}, 2);

        if (comparisonField == fields[0])
        {
            File.WriteAllLines(JobStart, 
                               new string[] {jobStartLine + ";" + fields[1]});
            break;
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

我的BoxData = data1;data2;data3;data4;data5

目前,data2到data5正在获取JobStart文件.

Data5不应包含在JobStart文件中.

我想将data5设置为全局变量.

我怎么能这样做,我只是想不出来,需要帮助.

这有助于理解我的问题:如何比较2 .csv文件并创建包含两个csv文件的新.csv文件?

Ram*_*mHS 1

这是我解决问题的方法:

  if (File.Exists(JobStart))
        {
            File.Delete(JobStart);
        }

        try
        {
            var jobStartLine = File.OpenText(PackAuftrag).ReadLine();
            var comparisonField = jobStartLine.Split(';')[4];

         foreach (var line in File.ReadAllLines(BoxData))
            {
                var fields = line.Split(new char[] { ';' }, 2);



                if (comparisonField == fields[0])
                {

                    string string2write = "";
                    string2write += JobName + ',';
                    string2write += jobStartLine.Split(';')[0] + ',';
                    string2write += jobStartLine.Split(';')[1] + ',';
                    string2write += jobStartLine.Split(';')[2] + ',';
                    string2write += jobStartLine.Split(';')[3] + ',';
                    string2write += jobStartLine.Split(';')[5] + ',';
                    string2write += line.Split(';')[1] + ',';
                    string2write += line.Split(';')[2] + ',';

                    string2write += line.Split(';')[3] + ',';
                    string2write += line.Split(';')[4] + ',';
                    string2write += line.Split(';')[5] + ',';
                    string2write += line.Split(';')[6];
                    PrinterSelected = line.Split(';')[7];

                    FileStream fst = new FileStream(JobStart, FileMode.Create, FileAccess.Write);
                    StreamWriter stw = new StreamWriter(fst, Encoding.Default);
                    stw.Write(string2write);
                    stw.Dispose();
                    stw.Close();

//                        File.WriteAllLines(JobStart, new string[] { jobStartLine + ";" + fields[1]});


                    break;
                }
Run Code Online (Sandbox Code Playgroud)

  • 这不是最好的解决方案,但即使您想从一开始就宣称自己的答案是正确的,您至少应该知道应该使用 StringBuilder 而不是“+=”,并使用“using”而不仅仅是忘记处置/关闭流。一切顺利。 (2认同)