String.Split()函数神秘地忽略重复项

c# unity3d split

369 观看

2回复

16 作者的声誉

在Unity3D中,我正在读取一个文本文件,其中包含有关节点及其连接的信息。

但是,似乎所有重复项都将自动删除!

           for (int j = 0; j < tokens.Length; j++)
           {
               Debug.Log(tokens[j]);
           } }

控制台结果:

Node,Node2,Node2,Lamp,Lamp,Node1,Node3,Node4   // string text
Node
Node2
Lamp
Node1
Node3
Node4

因此,当遍历数组时,似乎跳过了重复项。

作者: Jeroen Brouns 的来源 发布者: 2016 年 1 月 10 日

回应 2


-3

192 作者的声誉

即使split不能删除重复项(在此处测试),您也可以尝试使用Regex和Linq。

var words = Regex.Matches("Node,Node2,Node2,Lamp,Lamp,Node1,Node3,Node4", @",?(\w+)").Cast<Match>().Select(x => x.Groups[1].Value);
作者: Dom Stepek 发布者: 2016 年 1 月 10 日

3

19373 作者的声誉

这是Unity中臭名昭著的gotchya

非常简单,在Unity控制台中:

它不会打印重复项!!!

在此处输入图片说明

通过控制台输出更仔细地查看,并且有一个Collapse切换开关可以显示或不显示重复项。

在此处输入图片说明

就这么简单。

作者: Fattie 发布者: 2016 年 1 月 11 日
32x32