一个数组里的数据,需要按照3的倍数,分成若干个小数组,小的数组可以放到ArrayList 或则 List<string[]>
比如一个字符串数组 string[] a = new string[]{"a","b","c","d","e","f","g","h"} (里面字符的个数不定)
分完就是 abc一个数组 def一个数组 gf一个数组 ,这些小数组在放到ArrayList 或则 List<string[]> 里。
------解决思路----------------------
为什么要分?直接指定数组序号就好了
------解决思路----------------------
List<string[]> list = new List<string[]>();
string[] a = new string[] { "a", "b", "c", "d", "e", "f", "g", "h" };
for (int i = 0; i < a.Length; i+=3)
{
if (a.Length-i-1<3)
list.Add(a.Where((str, index) => index >= i && index < a.Length).ToArray());
else
list.Add(a.Where((str, index) => index >= i && index < i + 3).ToArray());
}
------解决思路----------------------
string[] strArray = new string[] { "a", "b", "c", "d", "e", "f", "g", "h" };
List<string[]> lstArray = new List<string[]>();
for (int i = 0, j = 0; i < Math.Ceiling(strArray.Length / 3m); i++, j = j + 3)
{
lstArray.Add(SplitArray(strArray, j, 3));
}
static string[] SplitArray(string[] Source, int StartIndex, int Len)
{
string[] result = new string[Len];
for (int i = 0; i < Len; i++)
{
result[i] = i + StartIndex > Source.Length - 1 ? "" : Source[i + StartIndex];
}
return result;
}
------解决思路----------------------
搜索 linq 的Take与Skip函数。不难写出来
------解决思路----------------------
有点小错误
string[][] s=new string[a.Length/3][3];