超级简单:使用Ling读取被划定过的文本文件
你是否遇到过的这样的情况:读划定的文件(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注入漏洞检测。
作者:朱祁林
出处:http://zhuqil.cnblogs.com
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。