Cuestión : ¿Cómo comprimir una secuencia en una representación corta en ASP.NET usar C# o VB.NET?

Tenemos una necesidad de comprimir una secuencia en una representación que sea más corta que la secuencia original entonces para descomprimirla.  Quise saber si hay una manera de hacer esto en .NET para las secuencias que son cerca de 200-500 carácteres (no extremadamente de largo, solamente necesitamos comprimirlas para el uso en un URL/querystring). class= del

Respuesta : ¿Cómo comprimir una secuencia en una representación corta en ASP.NET usar C# o VB.NET?

Porque estos métodos de la compresión dan lugar a datos binarios, y usted no puede pasar octetos en un URL, los datos comprimidos necesitan ser codificados como secuencia Base64. Mientras que la compresión pudo reducir el tamaño de la secuencia, sospecho que la codificación Base64 es probable conseguir le una secuencia más grande que la usted intentaba comprimir en el primer lugar - particularmente si su secuencia es en gran parte al azar.

Los pequeños conjuntos de datos, e.g. una secuencia de 500 octetos, tienden a no comprimir bien y a menudo resultado en un aumento de tamaño.

¿Qué se contiene en su secuencia?

1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
67:
68:
69:
70:
71:
72:
73:
74:
75:
76:
77:
78:
79:
80:
81:
82:
83:
84:
85:
86:
87:
88:
89:
90:
91:
92:
93:
94:
95:
usar sistema;
usar System.Collections.Generic;
usar System.Linq;
usar System.Text;
usar System.IO;
usar System.IO.Compression;

namespace ConsoleApplication1
{
	programa de la clase
	{
		principal vacío de los parásitos atmosféricos args (de la secuencia [])
		{
			secuencia longString = GetLongString (500);
			
			secuencia comprimida = StringCompressor.CompressString (el longString);
			secuencia sin comprimir = StringCompressor.DecompressString (comprimido);

			Console.WriteLine (“longitud original de la secuencia: {0} \ r \ longitud nCompressed de la secuencia: {1}”,
				longString.Length, comprimido. Longitud);
			Console.ReadKey ();
		}

		secuencia estática GetLongString (la internacional len)
		{
			Str de StringBuilder = nuevo StringBuilder ();
			Rand al azar = nuevo al azar (DateTime.Now.Millisecond);

			para (internacional i = 0; streamBytes < len=""> i = nueva lista ();

			si (stream.CanSeek)
				corriente. Posición = 0;

			bytesRead de la internacional = 0;
			hacer
			{
				bytesRead = corriente. Leído (el almacenador intermediario, 0, buffer_size);
				si (bytesRead > 0)
					streamBytes.AddRange (almacenador intermediario. Toma (bytesRead));
			} mientras que (bytesRead > 0);

			streamBytes.ToArray de vuelta ();
		}
	}
}
Otras soluciones  
 
programming4us programming4us