c#中如何将byte数组转换成string从而在textbox中显示出来?

当时我在电脑前,敲代码,C嘛,熟悉得要命。
定义了个byte数组,弄了个byte[] byteArray,里面填了一堆数字,从1 到1 6 ,像学生时代写作业,整齐划一。
然后,开始转换,用了个for循环,一个一个地转,每个数字都弄成字符串,那时候也懵,怎么转啊?后来想想,哦,对,用string.Join,空格分隔符,一串一串连起来。
textBox1 .Text=string.Join("", byteArray); 看着这行代码,心里也踏实了。
但是,想展示二进制,十六进制,怎么办呢?查了查资料,用Select和Convert.ToString,二进制,十六进制,都不费劲。
stringbinaryResult=string.Join("", byteArray.Select(b => Convert.ToString(b, 2 ).PadLeft(8 , '0'))); stringhexResult=string.Join("", byteArray.Select(b => b.ToString("X2 "))); 设置text属性, textBox1 .Text=hexResult; 心里就更有底了,各种格式,都搞定了。

C#的String.Split方法如何分割字符串?

哎哟,跟你说个事儿,我之前用 C 的 String.Split 的时候,真走了不少弯路。
你这总结得挺到位,我就按我自己的经验,跟你唠唠。

那年头,我刚接手一个项目,数据挺乱的,得从一长串字符串里拆出点信息来。
比如吧,有个字符串 "Name::John;;Age::3 0;;;City::NewYork",你想拆出来 Name, John, Age, 3 0, City, NewYork 这些玩意儿。
一开始我直接用 Split(new char[] {':'}, StringSplitOptions.RemoveEmptyEntries),结果发现 ;; 和 ;;; 这种地方,拆出来一堆空字符串,搞得数组里全是垃圾,还得再写段代码去清理。
真是够折腾的。

后来我悟了,直接用 Split(new char[] {':'}, StringSplitOptions.RemoveEmptyEntries | StringSplitOptions.TrimEntries) 就好使了。
你看,RemoveEmptyEntries 是必须的,不然空字符串看着就烦人。
TrimEntries 那会儿是 .NET Core 2 .0 才有的,用上它,每个拆出来的字符串前后的空格都自动没了,省了多少事儿啊。
这个 TrimEntries 我真是用了不少回,特别是处理用户输入的时候,有时候用户填完表单,啥都加了一堆空格,用这个一拆,立马干净。

再比如,有个场景是处理日志文件,里面全是 "Error:FileNotFound;Code:4 04 ;Line:1 2 " 这种格式。
我一开始想着用 Split(new char[] {';'}, StringSplitOptions.RemoveEmptyEntries),结果发现性能有点慢。
后来改用 Split(new char[] {';'}, StringSplitOptions.RemoveEmptyEntries | StringSplitOptions.TrimEntries),性能立马上去了。
你看,单字符分隔符(char)就是比字符串数组(string[])快,这个我踩坑踩明白了。

还有啊,你要是遇到特别复杂的分割需求,比如 "Alpha1 2 3 _Beta4 5 6 -Gamma7 8 9 " 这种,想按非字母数字的分隔符拆,我以前直接用 Regex.Split(complexText, @"[^a-zA-Z0-9 ]+")。
虽然用起来挺方便,但后来发现性能比 String.Split 用字符串数组 (string[]) 慢不少。
这时候我就建议用正则表达式,毕竟正则表达式匹配起来灵活。
但你要是就拆逗号、空格这种简单玩意儿,还是用 String.Split 快得多。

我记得有回在一个大项目中,数据量特别大,我得拆几万个字符串,直接用 String.Split 居然卡死了一次。
后来我改用 String.IndexOf + Substring 的方式去拆,再配合 ReadOnlySpan,这才勉强扛住。
这个教训我记了一辈子,你要是遇到特别极端的性能要求,真得用性能分析工具去查查哪里慢,再针对性地优化。

总的来说啊,String.Split 是个好东西,用好了能省不少事儿。
但你得根据实际情况选对分隔符类型和选项。
单字符分隔符(char)最快,RemoveEmptyEntries 和 TrimEntries 用得恰到好处,能省事又省性能。
复杂模式匹配还是用 Regex.Split。
这些我都是真金白银踩出来的坑,你可得好好记着。