C#:找出List <string>中的最后一个元素是否是回车符?</string>

时间:2011-06-29 20:39:18

标签: c# c#-4.0

我试图使用的逻辑是:
1.查看列表的最后一个元素
2.如果是新行(回车),请将其删除

        int stringLength = mailingList.Count;

        if (mailingList[stringLength - 1].Equals(Environment.NewLine))
        {
            //mailingList.RemoveAt(stringLength - 1);
            txtOutput.Text = "exists";
        }

        else
        {
            txtOutput.Text = "does not exist";
        }

但无论我使用什么,我都无法让它发挥作用。 我也尝试过使用:

if (mailingList[stringLength - 1] == "\r\n")

这也不起作用。 从我的输出测试中,我一直“不存在”。

如何识别最后一个元素是否为新行?

任何帮助都会很棒!

谢谢, 射线

4 个答案:

答案 0 :(得分:4)

那么,最后一个元素可能不是新行。

如何获得线路? 你拆分了一个文本框吗?然后你不会得到新的行,你会得到一个空字符串。 那你应该做点什么:

if (string.IsNullOrWhiteSpace(mailingList.LastOrDefault())

在取出行之前你应该做的是Trim文本框文本。

答案 1 :(得分:1)

使用LINQ

mailingList.LastOrDefault() == Environment.NewLine

如果列表中没有元素,这将涵盖案例。

答案 2 :(得分:0)

有些系统仅使用\n换行,有些甚至只使用\r

http://en.wikipedia.org/wiki/Newline

答案 3 :(得分:0)

此代码

List<string> list = new List<string>();
list.Add(Environment.NewLine);
if (list[0].Equals(Environment.NewLine))
    System.Console.WriteLine("found newline");

将文本“找到换行符”打印到控制台。因此,我只能得出结论,您的列表在最后一项中不包含换行符。

我们只能猜到为什么这是因为我们看不到填充列表的代码。