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

C# 如何忽略字段并将被忽略的字段设置为函数中的全局变量?,c#,global-variables,field,C#,Global Variables,Field,我有这个代码来组合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个不同的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;
        }
    }
}
My BoxData=
data1;数据2;数据3;数据4;数据5

此时data2到data5正在JobStart文件中

数据5不应包含在JobStart文件中

我想将data5设置为全局变量

我怎么能做到这一点,我只是不明白这一点,需要帮助

这有助于理解我的问题:


这就解决了我认为是你的问题。

以下是我解决问题的方法:

  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;
                }

这不是最好的解决方案,但即使您想从一开始就宣布自己的答案是正确的,您至少应该知道应该使用StringBuilder而不是“+=”,并且使用“using”而不是忘记处理/关闭流。一切都好。@LepiPerke我没有把它标记为“最佳”答案,但更像是“我是如何做到的”,我根本不是最好的程序员。另一方面,我是C#的新程序员。。。但是谢谢你的建议
  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;
                }