2012-01-05 30 views
0

我有一个id的arraylist包含1000条记录,这将作为参数传递给WCF服务,我得到1000条记录的响应。现在我的要求是把1000分成10块,然后拨打服务10次。我怎么能在c#asp.net客户端做到这一点?如何划分数组列表并制作切片并通过web服务?

例如:假设我有150个ID传递,在这种情况下,100个ID在一个函数调用中,50个应该在第二个调用中。就像这样,如果我有270个ID,那么将创建100个,100个和70个三个块,并且为这个服务创建三个呼叫。

我使用的是现在的代码粘贴下面并在此代码我传递的所有ID ATA时间

ArrayList myArrayList = new ArrayList(); 

if (parsedData.Count > 0) 
       { 
        foreach (var item in parsedData) 
        { 
         myArrayList.Add(new Identifier() { Id = item.First() }); 
        } 
       } 

ServiceReference.CustomerProfileServiceClient clientObj = new ServiceReference.CustomerProfileServiceClient(); 

var responseObj = clientObj.GetProfiles(myArrayList.ToArray(typeof(Identifier)) as Identifier[]); 

感谢

+0

不是你的问题的答案,但ArrayList的现在通常被视为已弃用。你可能会更好的强类型名单 2012-01-05 07:38:01

+0

你有没有重新考虑重新这个问题? asp.net和wcf在这里没有关系。 – Morten 2012-01-05 08:44:55

回答

1
ArrayList myArrayList = new ArrayList(); 
int iCount = 0; 

if (parsedData.Count > 0) 
       { 
        foreach (var item in parsedData) 
        { 
         myArrayList.Add(new Identifier() { Id = item.First() }); 
         iCount++; 
         if (iCount % 10 == 0) 
         { 
           ServiceReference.CustomerProfileServiceClient clientObj = new ServiceReference.CustomerProfileServiceClient(); 
           var responseObj = clientObj.GetProfiles(myArrayList.ToArray(typeof(Identifier)) as Identifier[]); 
           myArrayList.Clear(); 
         } 
        } 
       }