对于以下代码...
IEnumerable<string> items=searchterms.Trim().Split(Environment.NewLine.ToCharArray());
foreach (var item in items) {
我在每个搜索词项之间得到了长度为0的项。我在其他地方使用过类似的代码,但没有碰到这一点,所以不确定为什么现在会发生这种情况。我需要在此处添加什么来摆脱这些多余的条目?即项目的数量与输入项的数量相匹配。我有一个解决方法(跳过长度为0的项目),但是数字不匹配是一件令人烦恼的事情,我想解决这个问题以显示进度。即item.count的第i + 1个项目。
P.S。这是UWP上的Xamarin形式。
谢谢, 唐纳德。
答案 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)