发布网友 发布时间:2024-10-24 13:02
共1个回答
热心网友 时间:2024-11-06 14:26
更新:2007 年 11 月逗号分隔值 (CSV) 文件是一种文本文件,通常用于存储电子表格数据或其他由行和列表示的表格数据。通过使用 Split 方法分隔字段,可以非常轻松地使用 LINQ 来查询和操作 CSV 文件。事实上,可以使用此技术来重新排列任何结构化文本行部分;此技术不局限于 CSV 文件。在下面的示例中,假定有三列分别代表学生的“姓氏”、“名字”和“ID”。这些字段基于学生的姓氏按字母顺序排列。查询生成一个新序列,其中首先出现的是 ID 列,后面的第二列组合了学生的名字和姓氏。根据 ID 字段重新排列各行。结果保存到新文件,但不修改原始数据。创建数据文件创建一个新的 Visual C# 或 Visual Basic 项目,然后将下面各行复制到名为 spreadsheet1.csv 的纯文本文件。将此文件保存到您的解决方案文件夹。 Adams,Terry,120 Fakhouri,Fadi,116 Feng,Hanying,117 Garcia,Cesar,114 Garcia,Debra,115 Garcia,Hugo,118 Mortensen,Sven,113 O'Donnell,Claire,112 Omelchenko,Svetlana,111 Tucker,Lance,119 Tucker,Michael,122 Zabokritski,Eugene,121 示例C#VBclass CSVFiles { staticvoid Main(string[] args) { // Create the IEnumerable data sourcestring[] lines = System.IO.File.ReadAllLines(@"../../../spreadsheet1.csv"); // Create the query. Put field 2 first, then// reverse and combine fields 0 and 1 from the old field IEnumerable<string> query = from line in lines let x = line.Split(',') orderby x[2] select x[2] + ", " + (x[1] + " " + x[0]); // Execute the query and write out the new file. Note that WriteAllLines// takes a string[], so ToArray is called on the query. System.IO.File.WriteAllLines(@"../../../spreadsheet2.csv", query.ToArray()); Console.WriteLine("Spreadsheet2.csv written to disk. Press any key to exit"); Console.ReadKey(); } } /* Output to spreadsheet2.csv: 111, Svetlana Omelchenko 112, Claire O'Donnell 113, Sven Mortensen 114, Cesar Garcia 115, Debra Garcia 116, Fadi Fakhouri 117, Hanying Feng 118, Hugo Garcia 119, Lance Tucker 120, Terry Adams 121, Eugene Zabokritski 122, Michael Tucker */编译代码创建一个面向 .NET Framework 3.5 版的 Visual Studio 项目。默认情况下,该项目具有对 System.Core.dll 的引用,以及 System.Linq 命名空间的 using 指令(C#) 或 Imports 语句(Visual Basic)。在 C# 项目中,添加 System.IO 命名空间的 using 指令。将此代码复制到您的项目。按F5 编译并运行程序。按任意键退出控制台窗口。