是的,您可以逐个字符地迭代:
using System;
class Program
{
static void Main()
{
const string s = "Hello!";
// Option 1
foreach (char c in s)
{
Console.WriteLine(c); // Your treatment here
}
// Option 2
for (int i = 0; i < s.Length; i++)
{
Console.WriteLine(s[i]); // Your treatment here
}
}
}
您可以使用它来连接(治疗过程):
if (some_condition) text1 += s[i];
然后Your treatment here
你可以部分地使用 C# 提供的基本随机函数。只要您不更改seed
,就可以检索用于生成子字符串的序列并可能将其还原...
例如,可能是这样的:
int seed = 12;
List<int> lst = new List<int>();
// Repeat that until you processed the whole string
// At the mean time, skip the characters already indexed
while (lst.Count != s.Length) {
int n = new Random(seed).Next(0, s.Length);
if (!lst.Contains(n)) {
text1 += s[n];
lst.Add(n);
}
}
最后lst
是您恢复过程的关键。
那么你生成子字符串的方式,以及恢复原始字符串的算法也取决于你......你是完全自由的。
注意: 关于处理chunks
,请参考Simon
的回答。