我试图使用的逻辑是:
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")
这也不起作用。 从我的输出测试中,我一直“不存在”。
如何识别最后一个元素是否为新行?
任何帮助都会很棒!
谢谢, 射线
答案 0 :(得分:4)
那么,最后一个元素可能不是新行。
如何获得线路? 你拆分了一个文本框吗?然后你不会得到新的行,你会得到一个空字符串。 那你应该做点什么:
if (string.IsNullOrWhiteSpace(mailingList.LastOrDefault())
在取出行之前你应该做的是Trim文本框文本。
答案 1 :(得分:1)
使用LINQ
mailingList.LastOrDefault() == Environment.NewLine
如果列表中没有元素,这将涵盖案例。
答案 2 :(得分:0)
有些系统仅使用\n
换行,有些甚至只使用\r
答案 3 :(得分:0)
此代码
List<string> list = new List<string>();
list.Add(Environment.NewLine);
if (list[0].Equals(Environment.NewLine))
System.Console.WriteLine("found newline");
将文本“找到换行符”打印到控制台。因此,我只能得出结论,您的列表在最后一项中不包含换行符。
我们只能猜到为什么这是因为我们看不到填充列表的代码。