我有ids的arraylist包含1000条记录,这将作为参数传递给WCF服务,我得到1000条记录的响应。现在我的要求是将1000分成10个块并将服务调用10次。我怎样才能在c#asp.net客户端中执行此操作?
示例:假设我有150个ID要传递,在这种情况下,一个函数调用中有100个ID,第二个调用中应该有50个。像这样,如果我有270个ID,那么将创建100个,100个和70个三个块,并为服务进行三次调用。
我现在正在使用的代码粘贴在下面,在此代码中,我一次传递所有ID
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 :(得分: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();
}
}
}
答案 1 :(得分:1)
我同意Darren Young的观点;使用键入的列表。此外,使用Linq。寻找灵感:看看:Split List into Sublists with LINQ。