我正在调用一个方法,该方法返回List<MyViewModel>
并希望从中填充DataTable
。我无法更改返回类型,因为在该列表表单中需要它的其他几个地方调用此方法。我知道我可以迭代列表并一次填充表格,但我希望有更优雅的解决方案,例如它.Load
的{{1}}函数。
答案 0 :(得分:3)
从评论看来,真正的问题是您要将强类型列表导出到Excel文件,但您使用的库只接受DataTable。
我建议您使用EPPlus库,它可以从DataTable和集合中加载数据,例如:
sheet.LoadFromDataTable(myTable);
或
sheet.LoadFromCollection(myList);
EPPlus也可以作为NuGet package使用。
通常,您可以轻松地将集合转换为具有MoreLINQ ToDataTable()扩展名的DataTable,例如:
var myTable=myList.ToDataTable();
您可以找到扩展程序代码here。 MoreLINQ也可以a NuGet package获得。
答案 1 :(得分:0)
NSURL *url = [NSURL URLWithString:@"htttP://www.google.com"];
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url cachePolicy:NSURLRequestUseProtocolCachePolicy timeoutInterval:60];
[request setHTTPMethod:@"GET"];
[request addValue:@"application/json" forHTTPHeaderField:@"Content-Type"];
NSURLSessionConfiguration *sessionConfiguration = [NSURLSessionConfiguration defaultSessionConfiguration];
NSURLSession *session = [NSURLSession sharedSession];
session = [NSURLSession sessionWithConfiguration:sessionConfiguration delegate:self delegateQueue:Nil];
[[session dataTaskWithRequest:request completionHandler:^(NSData *data, NSURLResponse *response, NSError *error)
{
dispatch_async(dispatch_get_main_queue(), ^{
NSHTTPURLResponse *httpResponse = (NSHTTPURLResponse *)response;
if(!error)
{
NSError *error;
NSMutableArray *json = [NSJSONSerialization JSONObjectWithData:data options:kNilOptions error:&error];
NSLog(@"json - %@", json);
block(json, error,httpResponse.statusCode);
}
else
{
block(nil, error,httpResponse.statusCode);
}
});
}]resume];