我正在将两个excel工作表(使用Linq-To-Excel)的输入读入两个列表中。其中一个工作表有一个不需要的数据列(列名已知)。然而,两个工作表中的其他列包含完全相同类型的数据。
我问题的第一部分是:
如何才能只排除select语句中未处理的数据列(而不必为其他25列编写select.column名称?我打算这样做的目的如下:
我是c#和linq的新手。所以请原谅我的无知:)
我问题的第二部分是:
我正在提取的上述数据有点偏胖(从100,000到300,000行不等)。我必须继续使用for循环对上面的列表进行重复的linq查询(在1000到4000次之间)。是否有更好的方法来实现这一点,因为它会给性能带来巨大的损失。
EDIT_1:
关于输入文件:
发布于 2013-05-07 20:38:43
在从linq中选择结果时使用匿名类型。
ExcelQueryFactory excel = new ExcelQueryFactory(FilePath);
List<STC> stResults = (from s
in excel.Worksheet<STC>("StaticResults")
select s)
.ToList();
List<DYN> dynResults = (from s
in excel.Worksheet<DYN>("DynamicResults")
select new {Property1 = s.xxx, Property2 = S.yyy) //get the props based on the type of S
.ToList();发布于 2013-05-08 10:46:53
意外地找到了我第一个问题的解决方案。也许这没什么了不起的,但我还是想在这里分享一下。
这样,两个列表都只提取所需的属性/列(在类中声明的属性)。跳过不需要的额外列(因为我没有将这些列定义为类中的属性)。我想,这是林克对优秀选手的礼遇。我想知道更多这方面的情况,如果有人能给我更多的见解)。
https://stackoverflow.com/questions/16428123
复制相似问题