如何从List <string>?</string>中的字符串中删除\ n \ t

时间:2014-07-21 11:24:39

标签: c# .net

在List的循环中我做了:

private void listtostringlist(List<NewsLine> lnl, List<string> myl)
        {
            for (int i = 0; i < AllNews.Count; i++)
            {
                myl.Add(AllNews[i].text);
                IFormatProvider provider = CultureInfo.InvariantCulture;
                DateTime myTime = DateTime.ParseExact(AllNews[i].original_time, "DyyMMddTHHmm", provider);
                string results = myTime.ToString("hh:mm דווח במקור בתאריך : dd.MM.yy : שעה");
                AllNews[i].original_time = results;
                myl.Add(results);
                myl.Add(AllNews[i].link);
                myl[i] = Regex.Replace(myl[i], @"\t|\n|\r", "");
            }

试图使用正则表达式:

myl[i] = Regex.Replace(myl[i], @"\t|\n|\r", "");

但是在列表中使用断点时,我看到的某些行仍然没有影响\ n \ t在开头或结尾。 我想删除它们,如果有的话。

1 个答案:

答案 0 :(得分:2)

我怀疑AllNews的计数小于myl中的行数,或者myl在将其传递给此函数时已经有一些行。

如果是这种情况,则计数不会匹配,并且您不会为集合中的每个元素进行迭代,因此,并非所有元素都将应用替换。

我将其重写为:

private void listtostringlist(List<NewsLine> lnl, List<string> myl)
{
    for (int i = 0; i < AllNews.Count; i++)
    {
          myl.Add(AllNews[i].text);
          // etc...
    }

    for(int i = 0; i < myl.Count; i++)
    {
        myl[i] = Regex.Replace(myl[i], @"\t|\n|\r", "");
    }
}

此外,正如评论中所指出的,您还在myl循环中多次添加for

myl.Add(AllNews[i].text);
myl.Add(results);
myl.Add(AllNews[i].link);

这意味着AllNewsmyl的计数将不同步,因此在给定上下文的情况下,索引器imyl无用。