有没有什么方法可以将项目索引作为每个拆分的分隔符List<SomeObject>分成几个单独的列表SomeObject?
让我举例说明:
我有一个List<SomeObject>,我需要一个List<List<SomeObject>>或List<SomeObject>[],所以这些结果列表中的每一个将包含一组3个原始列表项(顺序).
例如.:
原始清单: [a, g, e, w, p, s, q, f, x, y, i, m, c]
结果列表: [a, g, e], [w, p, s], [q, f, x], [y, i, m], [c]
我还需要将结果列表大小作为此函数的参数.
我有一个有1123条记录的数据表.我想将此表拆分为5个固定大小的单独数据表.每张表的大小限制为225.
因此产生的数据表的大小将是:
DT1 : 225 rows
DT2 : 225 rows
DT3 : 225 rows
DT4 : 225 rows
DT5 : 223 rows (remaining rows)
Run Code Online (Sandbox Code Playgroud)
我能找到如何基于使用LINQ列值拆分数据表在这里.
我还发现了一种分裂的数据表到多个表在这里.想知道是否有更好的方法来做到这一点.从链接发布代码:
private static List<DataTable> SplitTable(DataTable originalTable, int batchSize)
{
List<DataTable> tables = new List<DataTable>();
int i = 0;
int j = 1;
DataTable newDt = originalTable.Clone();
newDt.TableName = "Table_" + j;
newDt.Clear();
foreach (DataRow row in originalTable.Rows)
{
DataRow newRow = newDt.NewRow();
newRow.ItemArray = row.ItemArray;
newDt.Rows.Add(newRow);
i++;
if (i == batchSize) …Run Code Online (Sandbox Code Playgroud) 我想将一个列表分成几部分,而不知道我将在该列表中有多少项目.问题与那些想要将列表拆分为固定大小的块的人不同.
int[] a = new int[] { 1, 2, 3, 4, 5, 6, 7, 8, 9 };
Run Code Online (Sandbox Code Playgroud)
我希望将值垂直分割.
拆分为2:
-------------------
| item 1 | item 6 |
| item 2 | item 7 |
| item 3 | item 8 |
| item 4 | item 9 |
| item 5 | |
Run Code Online (Sandbox Code Playgroud)
拆分为3:
| item 1 | item 4 | item 7 |
| item 2 | item 5 | item 8 |
| item …Run Code Online (Sandbox Code Playgroud)