首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何跳过linq中列表中的一列数据(可能更多)

如何跳过linq中列表中的一列数据(可能更多)
EN

Stack Overflow用户
提问于 2013-05-07 20:36:48
回答 2查看 1.3K关注 0票数 0

我正在将两个excel工作表(使用Linq-To-Excel)的输入读入两个列表中。其中一个工作表有一个不需要的数据列(列名已知)。然而,两个工作表中的其他列包含完全相同类型的数据。

我问题的第一部分是:

如何才能只排除select语句中未处理的数据列(而不必为其他25列编写select.column名称?我打算这样做的目的如下:

  1. 同时列出相同类型的列表。
  2. 合并这两个列表
  3. 可能会将这段代码移动到调用过程中,因为最终我将不得不从更多的工作表中阅读 ExcelQueryFactory excel =新ExcelQueryFactory(FilePath);List stResults =(从s in excel.Worksheet("StaticResults")选择s) .ToList();列表dynResults =(来自excel.Worksheet中的s(“DynamicResults”)选择s) //如何仅排除这里的一个列??.ToList();

我是c#和linq的新手。所以请原谅我的无知:)

我问题的第二部分是:

我正在提取的上述数据有点偏胖(从100,000到300,000行不等)。我必须继续使用for循环对上面的列表进行重复的linq查询(在1000到4000次之间)。是否有更好的方法来实现这一点,因为它会给性能带来巨大的损失。

EDIT_1:

关于输入文件:

  1. StaticResults文件有28列(STC类有28个属性)
  2. DynamicResults文件有29列(28列具有与静态相同的属性/列名加上一个不需要的附加属性) (DYN是来自STC的派生类)
EN

回答 2

Stack Overflow用户

发布于 2013-05-07 20:38:43

在从linq中选择结果时使用匿名类型。

代码语言:javascript
复制
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();
票数 0
EN

Stack Overflow用户

发布于 2013-05-08 10:46:53

意外地找到了我第一个问题的解决方案。也许这没什么了不起的,但我还是想在这里分享一下。

  1. 摆脱了二等德恩
  2. 第二个列表是STC类型

这样,两个列表都只提取所需的属性/列(在类中声明的属性)。跳过不需要的额外列(因为我没有将这些列定义为类中的属性)。我想,这是林克对优秀选手的礼遇。我想知道更多这方面的情况,如果有人能给我更多的见解)。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16428123

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档