【发布时间】:2015-03-30 20:16:39
【问题描述】:
除了问题:Get List<> element position in c# using LINQ
首先,让我解释一下我为什么要这样做:)
我正在尝试将一个字符串加密为一个单行代码,该代码包含一个字母在字符串中使用的次数以及它的位置。通过这种方法,我将能够解密代码并再次获取(再现)全文。假设 myString 是“你今天好吗”。我会像这样加密它 o3[1,9,13],""3[3,7,11],a2[4,15],y2[9,17],H1[0],w1[2],r1[5],e1 [6],u1[10],t1[12],d1[14],?[18]
我知道这看起来很奇怪,但请考虑处理更大的字符串,例如电子书。这可以处理一两行中的所有文本。
加密与安全无关,只是将大数据保存在较小的空间中。
在我的代码中,我可以将字符串转换为列表,计算一个字母被使用了多少次,但是当字母出现多次时,我无法定义它们的位置。
private void btnKoda_Click(object sender, EventArgs e)
{
var yazi = txtYazi.Text;
List<char> liste = yazi.ToList();
List<string> tut = new List<string>();
foreach (char harf in liste)
{
for (int i = 0; i < liste.Count; i++)
{
char ekle = liste[i];
tut.Add(ekle.ToString());
}
foreach (var karakter in tut)
{
txtKod.Text += karakter;
}
// holds statics
var istatistik =
from c in tut
group c by c into g
select new { g.Key, say = g.Count() };
var enCok =
from giris in istatistik
orderby giris.say descending
select giris;
foreach (var giris in enCok)
{
txtHarfler.Text += string.Format("{0}: {1}\r\n", giris.Key, giris.say);
}
break;
}
【问题讨论】:
-
仍在试图弄清楚这将如何导致字符串占用更小的空间...
-
嗯,它并没有像我想象的那样发展。没错,这需要更长的时间。
标签: c# arrays list encryption position