首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >用动态条件读取文本文件

用动态条件读取文本文件
EN

Stack Overflow用户
提问于 2018-06-06 04:38:49
回答 2查看 404关注 0票数 1

我想使用LINQ搜索文本文件的内容。

可以动态添加搜索条件。

我试过这个问题

并修改源以动态添加where条件:

代码语言:javascript
运行
复制
var targetLines = File.ReadAllLines(@"foo.txt")
                      .Select((x, i) => new { Line = x, LineNumber = i });

if(true)
    targetLines.Where( x => x.Line.Contains("pattern"));

foreach (int condition in conditions)
    targetLines.Where(condition....);

var result = targetLines.ToList();

foreach (var line in result)
    Console.WriteLine("{0} : {1}", line.LineNumber, line.Line);

但它不起作用,那里的条件不适用于输出。

我能用LINQ做吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-06-06 04:48:01

你错过了任务:

代码语言:javascript
运行
复制
if(true)
    targetLines = targetLines.Where( x => x.Line.Contains("pattern"));

foreach (var condition in conditions)
{
    targetLines = targetLines.Where(condition....);
}

Where方法不修改目标变量,而是生成新的可枚举变量。

票数 4
EN

Stack Overflow用户

发布于 2018-06-06 04:40:08

您需要执行以下操作

代码语言:javascript
运行
复制
var result = targetLines.Where( x => x.Line.Contains("pattern")).ToList(); 
///var result = targetLines.ToList();

你可以在文档中看到原因

Enumerable.Where方法(IEnumerable, Func)

根据谓词筛选值序列。 返回值 IEnumerable ,它包含来自输入序列的满足条件的元素。

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

https://stackoverflow.com/questions/50712346

复制
相关文章

相似问题

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