我正在準備一個代碼,將一個字符串拆分爲字符數組,然後根據某種模式對每個數組進行洗牌。如何在C#中填充數組?
我已經使用一些代碼根據「密鑰大小」將數組拆分爲不同的char數組,並且它工作正常,除了最後一個可能缺少某些元素的數組。
如果最後一個數組比其他數組短,將引發異常,因爲在某個時候交換函數可能試圖將[0]與不存在的[x]交換。
那麼我怎樣才能把最後一個數組放到相同的大小呢?
這裏是我的分裂碼這是我在這裏的一個問題,在這裏我已經編輯使用焦炭而不是INT發現。
public static char[][] Split(char[] source, int keysize)
{
int fullArrayCount = source.Length/keysize;
int totalArrayCount = fullArrayCount;
int remainder = source.Length - (fullArrayCount * keysize);
if (remainder > 0)
{
totalArrayCount++;
}
char[][] output = new char[totalArrayCount][];
for (int i = 0; i < fullArrayCount; i++)
{
output[i] = new char[keysize];
Array.Copy(source, i * keysize, output[i], 0, keysize); // Array.Copy(Original Array,,Target array,"Where to start"0,Howmuch)
}
if (totalArrayCount != fullArrayCount)
{
output[fullArrayCount] = new char[remainder];
// output[fullArrayCount] = new char[keysize];
MessageBox.Show((keysize-remainder).ToString());
Array.Copy(source, fullArrayCount * keysize,output[fullArrayCount], 0, remainder);
}
return output;
}
如果我正確理解了這個問題,你完全忽略了實際修改數組的部分;請包括您想要對'output'的元素進行的操作。 – Codor
我不確定你需要什麼,但似乎你的問題是最後一個數組可能比其他數組短。爲什麼不讓其尺寸與其他尺寸相同 - 密鑰大小,像現在這樣做Array.Copy,並用一些默認值填充數組的其餘部分? –
@NemanjaTodorovic:我認爲這就是問題所在...... OP不知道*怎麼做* – musefan