posts - 930,  comments - 588,  views - 402万
< 2025年2月 >
26 27 28 29 30 31 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 1
2 3 4 5 6 7 8

有时我们会处理一些带分隔符数据文本文件。例如,使用”,”分隔的数据,如下图:

linqimage23

然后它们存储到文本文件有这样的列:

  • First Name
  • Last Name
  • Job Title
  • City
  • Country
  •  

    在我们读取这个文件之前,先建一个实体类:

       1:      /// <summary>
       2:      /// Customer entity
       3:      /// </summary>
       4:      /// Author Petter Liu http://wintersun.cnblogs.com
       5:      public class Customer
       6:      {
       7:          public string Firstname { get; set; }
       8:          public string Lastname { get; set; }
       9:          public string JobTitle { get; set; }
      10:          public string City { get; set; }
      11:          public string Country { get; set; }
      12:      }


    接着我们使用LINQ读取整个文件:

       1:              var query = from line in File.ReadAllLines(filePath)
       2:                          let customerRecord = line.Split(',')
       3:                          select new Customer()
       4:                          {
       5:                              Firstname = customerRecord[0],
       6:                              Lastname = customerRecord[1],
       7:                              JobTitle = customerRecord[2],
       8:                              City = customerRecord[3],
       9:                              Country = customerRecord[4]
      10:                          };
      11:              foreach (var item in query)
      12:              {
      13:                  Console.WriteLine("{0}, {1}, {2}, {3}, {4}"
      14:                    , item.Firstname, item.Lastname, item.JobTitle, item.City, item.Country);
      15:              }

     

    要读取可以带条件的记录也可以,我们filter出Country是UK:

       1:              var query = from c in
       2:                              (from line in File.ReadAllLines(filePath)
       3:                               let customerRecord = line.Split(',')
       4:                               select new Customer()
       5:                               {
       6:                                   Firstname = customerRecord[0],
       7:                                   Lastname = customerRecord[1],
       8:                                   JobTitle = customerRecord[2],
       9:                                   City = customerRecord[3],
      10:                                   Country = customerRecord[4]
      11:                               })
      12:                          where c.Country == "UK"
      13:                          select c;

     

    另一例子:

       1:              var query = from c in
       2:                              (from line in File.ReadAllLines(filePath)
       3:                               let customerRecord = line.Split(',')
       4:                               select new Customer()
       5:                               {
       6:                                   Firstname = customerRecord[0],
       7:                                   Lastname = customerRecord[1],
       8:                                   JobTitle = customerRecord[2],
       9:                                   City = customerRecord[3],
      10:                                   Country = customerRecord[4]
      11:                               })
      12:                          where c.JobTitle.Contains("Sales")
      13:                          select c;


    Author: Petter Liu   http://wintersun.cnblogs.com

    希望这篇POST对您有帮助。

    posted on   PetterLiu  阅读(1969)  评论(4编辑  收藏  举报
    编辑推荐:
    · [.NET]调用本地 Deepseek 模型
    · 一个费力不讨好的项目,让我损失了近一半的绩效!
    · .NET Core 托管堆内存泄露/CPU异常的常见思路
    · PostgreSQL 和 SQL Server 在统计信息维护中的关键差异
    · C++代码改造为UTF-8编码问题的总结
    阅读排行:
    · 实操Deepseek接入个人知识库
    · CSnakes vs Python.NET:高效嵌入与灵活互通的跨语言方案对比
    · 【.NET】调用本地 Deepseek 模型
    · Plotly.NET 一个为 .NET 打造的强大开源交互式图表库
    · 上周热点回顾(2.17-2.23)
    点击右上角即可分享
    微信分享提示