通过索引从字符串[]中删除行

时间:2014-08-15 14:04:06

标签: c# asp.net

我需要从string[] lines删除第一行。我将文件文本加载到str变量中。在数组字符串中我从str拆分文本,其中是一行文本新数组项。但第一行是我在其他代码中不需要的标题,我想在加载文件时删除或跳过该行。这是我的代码:

string url = @"E:\Sims.log";
    Stream stream = File.Open(url, FileMode.Open, FileAccess.Read, FileShare.ReadWrite);

                using (StreamReader sr = new StreamReader(stream))
                {
                    string str = sr.ReadToEnd();
                    string[] lines = Regex.Split(str, "\r\n");
                   //I need to delete first row from lines
                }

3 个答案:

答案 0 :(得分:3)

你可以在sr.ReadToEnd()之前放置sr.ReadLine(),这样就可以读取第一行,因此ReadToEnd会忽略它。

sr.ReadLine();
string str = sr.ReadToEnd();

答案 1 :(得分:2)

跳过第一行

using (StreamReader sr = new StreamReader(stream))
{
    string firstLine = sr.ReadLine();
    // Check to be on the safe side....
    if(firstLine != null)
    {
         string str = sr.ReadToEnd();

         // Not sure, but it seems overkill to use a Regex just to split
         // and it is always better to use predefined constant for newline.
         string[] lines = str.Split(new string[] {Environment.NewLine}, 
                                    StringSplitOptions.RemoveEmptyEntries);
    }
}

答案 2 :(得分:-1)

使用Skip,如果您可以使用IEnumerable而不是字符串数组。

string[] lines = Regex.Split(str, "\r\n").Skip(1);