label.text中的字符串很奇怪

时间:2018-09-12 14:20:26

标签: c# label

因此我有一个completed WebService 初始化。我想看看该标签是否包含任何逗号。问题是,即使标签具有逗号course_module.completed!也会返回Label,而如果我执行Contains(),则数组仅为 1 元素长,包含整个字符串

false

Split()// text is "255,255,0,0" string wat = myLabel.Text; string[] wats = wat.Split(','); // This IF never happens, for some reason if (wat.Contains(",")) { anotherLabel.Text = wats[0] + " VS " + wats[1]; } 为什么不起作用?标签中的字符串中是否可以是某种差异编码?如果我执行Split(),则Contains()返回wat = wat + ","

2 个答案:

答案 0 :(得分:3)

Unicode符号通常很奇怪。 Unicode有很多逗号,例如

string wat = "255,255,0,0"; // Full range commas

bool hasComma = wat.Contains(','); // false

如果wat.Contains(',')返回false,则分隔符不是逗号,。您可以使用已解码的string进行检查:

string wat = myLabel.Text;

// Let's have a close look at wat: which characters (codes included) does it contain
MessageBox.Show(
  $"wat: [{wat}] encoded as {string.Join(" ", wat.Select(c => ((int)c).ToString("x4")))}");

您应该获得

  

wat:[255,255,0,0]编码为0032 0035 0035 002c 0032 0035 0035 002c   0030 002c 0030

如果不是,请检查您有什么字符代码,而不是预期的002c

答案 1 :(得分:-1)

以下几行总是会得出false:

if (wats.Contains(","))
当您指定逗号作为分隔符时,

string.Split(',')将仅返回逗号之间的值。数组中的所有项目都不会包含逗号。

如果要检查标签文本是否包含逗号,请执行以下操作:

if (lblteste.Text.Contains(','))