为每个换行符在数组中获取一个额外的条目

时间:2019-04-26 10:12:07

标签: c# arrays string trim

对于以下代码...

IEnumerable<string> items=searchterms.Trim().Split(Environment.NewLine.ToCharArray());
foreach (var item in items) {

我在每个搜索词项之间得到了长度为0的项。我在其他地方使用过类似的代码,但没有碰到这一点,所以不确定为什么现在会发生这种情况。我需要在此处添加什么来摆脱这些多余的条目?即项目的数量与输入项的数量相匹配。我有一个解决方法(跳过长度为0的项目),但是数字不匹配是一件令人烦恼的事情,我想解决这个问题以显示进度。即item.count的第i + 1个项目。

P.S。这是UWP上的Xamarin形式。

谢谢,   唐纳德。

2 个答案:

答案 0 :(得分:1)

问题是您被resource "google_dns_managed_zone" "private-zone" { name = "${var.project_id}-private-zone" dns_name = "private.example.local." description = "test" visibility = "private" private_visibility_config { networks { //SOME INTERPOLATION HERE } } } // Something like this data "google_compute_network" "project-1" { project = "${var.project_id}" } 的char数组分割,这意味着任何一个符号都被视为分隔符,而不是{ '\r', '\n' }的整个序列,即{{1中有一个空字符串}}之间。

要按整个序列进行拆分,只能使用一个元素的字符串数组

"\r\n"

除非字符串中连续"\r\n"连续,否则不会产生空项目。如果您还想在这种情况下删除空项目,则可以使用IEnumerable<string> items = searchterms.Trim().Split(new string[] { Environment.NewLine, }, StringSplitOptions.None); 字符串拆分选项。

"\r\n"

答案 1 :(得分:0)

由于换行符由2个字符组成(无论如何在大多数系统上都是\ r和\ n),所以您可能会得到一个多余的空字符串作为这些字符之间的字符串。

尝试一下:

Coalesce(..., 0)