超级简单:使用Ling读取被划定过的文本文件

简介:

   你是否遇到过的这样的情况:读划定的文件(CSV或任何类似格式的文件),然后根据一些条件筛选记录(通过检查某些列的值)。

    例如,我们假设data.txt文件包含以下记录

 Name,Age,CityPerson
 1,30,CityAPerson
 2,20,CityBPerson
 3,25,CityBPerson
 4,30,CityAPerson
 5,27,CityA

    如果我们找出CityPerson=CityA,而且age >= 30 的所有记录 ,可以使用LINQ去实现。

复制代码
 1  string  delimiter  =   " ,; " ;
 2  List < string >  logs  =  (File.ReadAllLines( @" C:\Data.txt " )    
 3  //  leave blank lines    
 4  .Where(line  =>   ! string .IsNullOrEmpty(line))    
 5  //  split line seperated by delimiter    
 6  .Select(line  =>  line.Split(delimiter.ToCharArray(), StringSplitOptions.RemoveEmptyEntries))    
 7  //  compare the third column to find all records from CityA    
 8  .Where(values  =>  values[ 2 ].Equals( " CityA " , StringComparison.CurrentCultureIgnoreCase))    
 9  //  compare the second column to find all records with age more than or equal to 30    
10  .Where(values  =>   int .Parse(values[ 1 ])  >=   30 )    
11  //  join back the splitted values by underscore    
12  .Select(values  =>   string .Join( " _ " , values))    
13  //  find all unique values    
14  .Distinct()    
15  .ToList < string > ());
16  //  convert to list
复制代码

    呵呵,是不是很简单明了呢!




本文转自麒麟博客园博客,原文链接:http://www.cnblogs.com/zhuqil/archive/2010/03/22/Using-LINQ-to-read-delimited-text-files.html,如需转载请自行联系原作者

相关文章
|
机器学习/深度学习 算法 异构计算
深度学习模型训练痛点及解决方法
## 1 模型训练基本步骤 进入了AI领域,学习了手写字识别等几个demo后,就会发现深度学习模型训练是十分关键和有挑战性的。选定了网络结构后,深度学习训练过程基本大同小异,一般分为如下几个步骤 1. 定义算法公式,也就是神经网络的前向算法。我们一般使用现成的网络,如inceptionV4,mobilenet等。 2. 定义loss,选择优化器,来让loss最小 3. 对数据进行迭
10834 1
|
数据采集 机器学习/深度学习 数据挖掘
python数据分析——数据预处理
数据预处理是数据分析过程中不可或缺的一环,它的目的是为了使原始数据更加规整、清晰,以便于后续的数据分析和建模工作。在Python数据分析中,数据预处理通常包括数据清洗、数据转换和数据特征工程等步骤。
492 0
|
存储 缓存 Rust
一文读懂 Deno
一文读懂 Deno
493 0
|
机器学习/深度学习 算法 数据挖掘
【Python机器学习】Mean Shift、Kmeans聚类算法在图像分割中实战(附源码和数据集)
【Python机器学习】Mean Shift、Kmeans聚类算法在图像分割中实战(附源码和数据集)
420 0
【Python机器学习】Mean Shift、Kmeans聚类算法在图像分割中实战(附源码和数据集)
|
canal 关系型数据库 中间件
开源数据同步神器——canal
作为使用最广泛的数据库,如何将mysql的数据与中间件的数据进行同步,既能确保数据的一致性、及时性,也能做到代码无侵入的方式呢?如果有这样的一个需求,数据修改后,需要及时的将mysql中的数据更新到elasticsearch,我们会怎么进行实现呢?
18003 1
|
存储 内存技术
内存条RAM详细指南
内存条(RAM)是电脑中用于临时存储数据和程序的部件,CPU依赖它执行操作。内存条经历了从主内存扩展到读写内存整体的发展,常见类型包括SDRAM和DDR SDRAM。内存容量、存取时间和奇偶校验是衡量其性能的关键指标。在选购时,应考虑类型、容量、速度和品牌,知名品牌的内存条提供更好的可靠性和稳定性。
3418 2
|
存储 安全 物联网
Web3如何重塑物联网的未来
Web3技术的核心在于去中心化,这意味着数据和操作不再依赖于单一的中心化实体,而是分布式地存储和管理。
189 2
|
存储 SQL 分布式计算
MaxCompute 近实时增全量处理一体化新架构和使用场景介绍
本文主要介绍基于 MaxCompute 的离线近实时一体化新架构如何来支持这些综合的业务场景,提供基于Delta Table的近实时增全量一体的数据存储和计算解决方案。
142300 4
MaxCompute 近实时增全量处理一体化新架构和使用场景介绍
|
Java
线程 - 父线程与子线程传值问题
线程 - 父线程与子线程传值问题
558 0
线程 - 父线程与子线程传值问题