我遇到的事情往往是有用的,如果它存在,我想知道它。我不确定如何解释它来搜索它,但它基本上是一个单行循环语句 - 类似于lambada。这不是最好的例子(没有这个就是一个简单的解决方案),但当我决定最终提出这个问题时,我想到的是什么。但这就是我所说的那种。
(以下是我的想法。我问的是否存在类似情况)
在我目前的情况下,我正在将字符串转换为字节数组以写入流。我希望能够这样做来创建字节数组:
byte[] data = String ==> (int i; Convert.ToByte(String[i]))
其中i是字符串中基于它的长度的数字,下一行是项目的输出。
答案 0 :(得分:6)
您应该阅读LINQ。
您的代码可以写成:
var String = "some string";
byte[] data = String.Select(x => Convert.ToByte(x)).ToArray();
甚至是方法组:
byte[] data = String.Select(Convert.ToByte).ToArray();
答案 1 :(得分:-1)
除非服务器或客户端(无论其他方面是什么)强制您仅使用ASCII或8位字符,否则我建议不要使用 Convert.ToByte(char)< / em>的。对于数值> 1的任何字符。 255, Convert.ToByte(char)将抛出异常。
相反,要从字符串中获取字节数组,请使用以下内容:
string myString = ...some string data...
byte[] bytes = Encoding.UTF8.GetBytes(myString);
以及&#39;其他&#39;连接的一端,做这样的事情将字节数组转换回字符串:
byte[] byteData = ...the received byte data...
string s = Encoding.UTF8.GetString(byteData);
此方法没有Convert.ToByte(char)
或byte b = (byte) myChar;
具有的字符限制。