c# - 使用带分隔符的文本文件

标签 c# linq file text delimited

开始阅读文本文件 - 由竖线下划线和竖线分隔 - |_| 尝试了以下代码。没有产生预期的结果。 拆分条件应该修改,但是如何修改。请指教。 谢谢大家 - 现在可以用了。

class Program
{
    static void Main(string[] args)
    {
        string filePath = @"J:\dot\emp.dat";


        var query = 
            from line in File.ReadLines(filePath)
            let empRecord = line.Split(new string[] {"|_|"},StringSplitOptions.None)

            select new datFile()
            {
                name = empRecord[0],
                employeeid = empRecord[1],
                income = empRecord[2],
                expenses = empRecord[3]

            };

        foreach (var item in query)
        {
            Console.WriteLine(item.name, item.employeeid, 
                 item.income, item.expenses);
        }
        Console.ReadLine();
    }

    public class datFile
    {
        public string name { get; set; }
        public string employeeid { get; set; }
        public string income { get; set; }
        public string expenses { get; set; }

      }
   }

文件内容:

name|_|employeeid|_|income|_|expenses
emp1|_|201501|_|100000|_|50000
emp2|_|20000|_|90000|_|30000
emp3|_|34234|_|100000|_|23000

输出:

 name
 emp1
 emp3
 emp3   
 ----- 

最佳答案

问题其实就在这里:

Console.WriteLine(item.name, item.employeeid, item.income, item.expenses);

这是使用 item.name 作为格式字符串,恰好不包括 {0}{1} {2},所以剩余的参数实际上是无用的。试试这个,它指定一个格式字符串,然后要填写的值:

Console.WriteLine("{0} {1} {2} {3}", 
                  item.name, item.employeeid, item.income, item.expenses);

关于c# - 使用带分隔符的文本文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7030439/

相关文章:

c# - 如何显示WinForm然后运行XNA游戏?

c# - 无法加载文件或程序集,PublicKeyToken=null

c# - Linq 到 SQL : Updating dataGridView after SubmitChanges isn't working

c++ - 如何从文件中调用多个号码

Java-如何获取文件夹中的所有文件名

c# - 身份用户的数据库定义 - dbo.AspNetUsers 和 dbo.Users

c# - 传递大字节[]时WCF服务错误413 "Entity Too Large"

Linq 到 SQL SP 参数

c# - LINQ - 查询多个属性以查找潜在匹配

javascript - 只有文件正在上传到数据库,所有其他字段均为 NULL