你是否遇到过的这样的情况:读划定的文件(CSV或任何类似格式的文件),然后根据一些条件筛选记录(通过检查某些列的值)。
例如,我们假设data.txt文件包含以下记录
Name,Age,CityPerson
1,30,CityAPerson
2,20,CityBPerson
3,25,CityBPerson
4,30,CityAPerson
5,27,CityA
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
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
呵呵,是不是很简单明了呢!
(全文完)
以下为广告部分
您部署的HTTPS网站安全吗?
如果您想看下您的网站HTTPS部署的是否安全,花1分钟时间来 myssl.com 检测以下吧。让您的HTTPS网站变得更安全!
快速了解HTTPS网站安全情况。
安全评级(A+、A、A-...)、行业合规检测、证书信息查看、证书链信息以及补完、服务器套件信息、证书兼容性检测等。
安装部署SSL证书变得更方便。
SSL证书内容查看、SSL证书格式转换、CSR在线生成、SSL私钥加解密、CAA检测等。
让服务器远离SSL证书漏洞侵扰
TLS ROBOT漏洞检测、心血漏洞检测、FREAK Attack漏洞检测、SSL Poodle漏洞检测、CCS注入漏洞检测。
转载于:https://www.cnblogs.com/zhuqil/archive/2010/03/22/Using-LINQ-to-read-delimited-text-files.html
