0

到目前为止,这是我的代码:

string _nextLine;
string[] _columns;
char[] delimiters;

delimiters = "|".ToCharArray();

using (StreamReader _reader = ...)
{
    _nextLine = _reader.ReadLine();

    while (_nextLine != null)
    {
        _columns = _nextLine.Split(delimiters);
        JazzORBuffer.AddRow();
        JazzORBuffer.Server = _columns[0];
        JazzORBuffer.Country = _columns[1];
        JazzORBuffer.QuoteNumber = _columns[2];
        _nextLine = _reader.ReadLine();
    }
}

我的文件的前 5 行如下所示:

在 x 和 y 之间创建的产品

第 1 列标题 | 栏目 2 标题 | 第 3 列标题 | 第 4 栏标题 |

温迪Z| 戴夫 | 约翰 | 史蒂夫 |

最后 3 行如下所示:

温迪Z| 戴夫 | 约翰 | 史蒂夫 |

产品总数| 49545

我需要在我的代码中进行哪些更改,以便忽略文件中的前 3 行和最后一行?

4

1 回答 1

4

我不是 100% 确定我理解这个问题,但请尝试:

string[] lines = File.ReadAllLines("FilePath");
string[] _columns;

//Start at index 2 - and keep looping until index Length - 2
for (int i = 2; i < lines.Length - 2; i++)
{
    _columns = lines[i].Split('|');
    JazzORBuffer.AddRow();
    JazzORBuffer.Server = _columns[0];
    JazzORBuffer.Country = _columns[1];
    JazzORBuffer.QuoteNumber = _columns[2];
}

注意 - 这将通过一次将整个文件读入内存来改变你正在做的事情的性能。如果它是一个非常大的文件,这可能不是高性能的。如果是的话,说出来:)

于 2012-05-14T14:39:57.800 回答