如何将2D数组拆分为块

时间:2014-01-01 08:19:16

标签: c# arrays linq datatable split

我在数据表中有大量数据。我提取第一列并制作了一个1D字符串数组,因为我想调用一个Web服务方法,它将第一列作为输入。 我必须为每个记录报告Web服务的结果,我需要其余的列来执行此操作。所以我将数据表转换为2D字符串数组。它运行良好,但现在我想以一种将数据表分成相同大小的块的方式更改代码,并为这些块执行此例程。 我编写此代码并为每个块调用Web服务,但我不知道如何访问具有与1D块相同的第一列列表的2D字符串数组块,因此我可以调用Result函数。 / p>

这是我的代码:

if (dt0.Rows.Count != 0)
{
    WebReferenceProvisionOmc.stringArray[] noBlkRes;

    tels = dt0.AsEnumerable()
              .Select(row => row.Field<decimal>("tel_no").ToString().Substring(0, 3) + " " + row.Field<decimal>("tel_no").ToString().Substring(3))
              .ToArray();

    var tchunks = from index in Enumerable.Range(0,tels.Length)
                  group tels[index] by index/ChunkSize;

    paras = dt0.Rows
               .OfType<DataRow>()
               .Select(r => dt0.Columns
                               .OfType<DataColumn>()
                               .Select(c => r[c.ColumnName].ToString())
                               .ToArray())
               .ToArray();

    var pchunks = from ind in Enumerable.Range(0, paras.Length)
                  group paras[ind] by ind/ChunkSize;

    foreach (var c in tchunks)
    {
        noBlkRes = ws.connectBulk(c.ToArray());
        for(int j=0;j<c.ToArray().Length;j++)
        {
            Result(Convert.ToInt32(noBlkRes[j].item[1]),pchunk????);
        }
    }
}

我的结果函数原型是这样的:

private static void Result(long res,string[] parameters)

0 个答案:

没有答案