subCloudService.BeginGetRecommendProduct("12345", 1, lDelegate =>
{
byte[] lResult = subCloudService.EndGetRecommendProduct(lDelegate).ToArray();
Dispatcher.BeginInvoke(new ProcessSumResultCb(ProcessSumResult), new object[] { lResult });
}, null);
byte[]中包含了从服务器返回的数据,怎样把它反序列化字符串数组?
你得告诉我你的 lResult 到底是啥格式的。
byte[0] 68
byte[1] 66
byte[2] 60
byte[3] 58
...
每一个byte元素表示一条记录,一个数据表格中的一条记录
最终返回一个十进制的数组,如68 66 60 58
@菜鸟_001: 我编写了一段简单的代码,不是解决你的问题,而是让你明白什么叫数据的格式,不然你是无法解析的。
static void Main(string[] args) { string headers = "Col1,Col2,Col3"; string[] rows = new string[] { "Value11,Value12,Value13", "Value21,Value22,Value23", "Value31,Value32,Value33" }; byte[] buffer = null; MemoryStream ms = new MemoryStream(); using (StreamWriter sw = new StreamWriter(ms, Encoding.UTF8)) // 使用了 utf-8 编码 { // 写入表格列名 sw.WriteLine(headers); // 写入 rows 中的三条记录。 Array.ForEach(rows, o => { sw.WriteLine(o); }); sw.Flush(); ms.Seek(0, SeekOrigin.Begin); buffer = ms.ToArray(); } // 下面是如何从 buffer 按照我们写入的格式来读取。 string hearders2; string[] rows2; ms = new MemoryStream(buffer); using (StreamReader sr = new StreamReader(ms, Encoding.UTF8)) // 使用同写入时相同的 utf-8 编码 { // 先读取表格列名。 hearders2 = sr.ReadLine(); // 读入记录。 List<string> list = new List<string>(); while (true) { string row = sr.ReadLine(); if (row == null) break; list.Add(row); } rows2 = list.ToArray(); } Console.Read(); }
可以用LINQ实现,代码如下:
var byteArray = new byte[4] { 68, 66, 60, 58 }; var stringArray = byteArray.Select(b => b.ToString()).ToArray(); Console.WriteLine(string.Join(",",stringArray));
-感谢帮助我的人,谢谢你们!
这是表中的数据
1 澳凯8天湛蓝之旅 s1.jpg ◆蓝山公园 —世界自然遗产之一,当您步入风景如画的原始森林公园,整个空气中散发着的著尤加利树的清香, 会给您一种返朴归真的世外桃源般的感受。 ◆凯 恩 斯 --大堡礁近岸最大、最不受人工破坏、和最 17865 3 2 巴厘岛4晚6日品质游(直飞) s2.jpg ◆超值住宿—巴厘岛入住国际5*酒店pullman 或同级。 ◆特色美食—金巴兰BBQ,黑胡椒螃蟹餐,皇家风味餐等。 ◆探秘巴厘岛—乌鲁瓦度望夫崖+海神庙+梯田下午茶+蜜月湾+玻璃底船+阿勇河漂流。 ◆升级赠送—巴厘岛赠送每人一碗燕窝、每人一顶遮阳帽、每天一杯矿泉水。 6000
byte[] lResult = subCloudService.EndGetRecommendProduct(lDelegate).ToArray();
这是正常返回的结果,
lResult {byte[9820]} byte[] [0] 68 byte [1] 65 byte [2] 66 byte [3] 73 byte [4] 78 byte [5] 50 byte [6] 48 byte [7] 48 byte [8] 67 byte [9] 38 byte [10] 0 byte [11] 0 byte [12] 255 byte [13] 166 byte [14] 17 byte [15] 0 byte [16] 0 byte [17] 6 byte [18] 0 byte [19] 0 byte [20] 0 byte [21] 34 byte [22] 0 byte [23] 0 byte [24] 0 byte [25] 9 byte [26] 0 byte [27] 0 byte [28] 0 byte [29] 65 byte [30] 108 byte [31] 105 byte [32] 103 byte [33] 110 byte [34] 109 byte [35] 101 byte [36] 110 byte [37] 116 byte [38] 13 byte [39] 0 byte [40] 0 byte [41] 0 byte [42] 116 byte [43] 97 byte [44] 76 byte [45] 101 byte [46] 102 byte [47] 116 byte [48] 74 byte [49] 117 byte [50] 115 byte [51] 116 byte [52] 105 byte [53] 102 byte [54] 121 byte [55] 8 byte [56] 0 byte [57] 0 byte [58] 0 byte [59] 66 byte [60] 108 byte [61] 111 byte [62] 98 byte [63] 84 byte [64] 121 byte [65] 112 byte [66] 101 byte [67] 11 byte [68] 0 byte [69] 0 byte [70] 0 byte [71] 100 byte [72] 97 byte [73] 98 byte [74] 116 byte [75] 85 byte [76] 110 byte [77] 107 byte [78] 110 byte [79] 111 byte [80] 119 byte [81] 110 byte [82] 15 byte [83] 0 byte [84] 0 byte [85] 0 byte [86] 66 byte [87] 117 byte [88] 115 byte [89] 105 byte [90] 110 byte [91] 101 byte [92] 115 byte [93] 115 byte [94] 67 byte [95] 108 byte [96] 97 byte [97] 115 byte [98] 115 byte [99] 73 byte [100] 68 byte
...
使用你的方法用linq实现
string.Join(",",stringArray)的值为
"68,65,66,73,78,50,48,48,67,38,0,0,255,166,17,0,0,6,0,0,0,34,0,0,0,9,0,0,0,65,108,105,103,110,109,101,110,116,13,0,0,0,116,97,76,101,102,116,74,117,115,116,105,102,121,8,0,0,0,66,108,111,98,84,121,112,101,11,0,0,0,100,97,98,116,85,110,107,110,111,119,110,15,0,0,0,66,117,115,105,110,101,115,115,67,108,97,115,115,73,68,0,0,0,0,10,0,0,0,67,97,108,99,117,108,97,116,101,100,5,0,0,0,70,97,108,115,101,16,0,0,0,67,117,115,116,111,109,65,116,116,114,105,98,117,116,101,115,0,0,0,0,8,0,0,0,68,97,116,97,84,121,112,101,11,0,0,0,100,97,116,67,97,114,100,105,110,97,108,16,0,0,0,68,101,99,105,109,97,108,80,114,101,99,105,115,105,111,110,1,0,0,0,48,12,0,0,0,68,101,99,105,109,97,108,83,99,97,108,101,1,0,0,0,48,12,0,0,0,68,101,102,97,117,108,116,86,97,108,117,101,0,0,0,0,11,0,0,0,68,101,115,99,114,105,112,116,105,111,110,0,0,0,0,15,0,0,0,68,105,99,116,105,111,110,97,114,121,69,110,116,114,121,0,0,0,0,13,0,0,0,68,105,115,112,108,97,121,70,111,114,109,97,116,0,0,0,0,12,0,0,0,68,105,115,112,108,97,121,76,97,98,101,108,2,0,0,0,73 ...
怎样把它转化为原来表中的数据