相关疑难解决方法(0)

使用LINQ将列表拆分为子列表

有没有什么方法可以将项目索引作为每个拆分的分隔符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]

我还需要将结果列表大小作为此函数的参数.

c# linq data-structures

361
推荐指数
18
解决办法
19万
查看次数

将数据表拆分为多个固定大小的表

我有一个有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)

c# linq datatable

8
推荐指数
1
解决办法
2万
查看次数

如何使用LINQ在n个部分中垂直拆分列表

我想将一个列表分成几部分,而不知道我将在该列表中有多少项目.问题与那些想要将列表拆分为固定大小的块的人不同.

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)

c# linq list

6
推荐指数
1
解决办法
3498
查看次数

标签 统计

c# ×3

linq ×3

data-structures ×1

datatable ×1

list ×1