Linq过滤掉带有null或string.empty的行

本文关键字:string empty 的行 null 过滤 Linq | 更新日期: 2023-09-27 18:10:57

我有一个linq查询,我正在读取CSV文件的所有行,该文件在没有数据的末尾有额外的行。我需要过滤掉这些行,这样它就只包含有数据的行我正在使用以下查询,但它仍然返回像8000行,只有52在他们的数据。

   var query =
            from c in
                (from line in File.ReadAllLines(excelFile)
                    let transactionRecord = line.Split(',')
                    select new Transaction()
                    {
                        TxnId = transactionRecord[12],
                    })
            where c.TxnTax != string.Empty
            select c;

不确定为什么会发生这种情况?有人有什么想法吗?

Linq过滤掉带有null或string.empty的行

这将给出一个IEnumerable包含行(string[])至少有一个列的数据

IEnumerable<string[]> data = 
    from line in System.IO.File.ReadAllLines("")
    let lineData = line.Split(',')
    where lineData.Any(cell => !string.IsNullOrEmpty(cell))
    select lineData;

成功了

var query =
                    from c in
                        (from line in File.ReadAllLines(excelFile)
                            let transactionRecord = line.Split(',')
                            select new Transaction()
                            {
                                TxnId = transactionRecord[12],
                            })
                    where ((string.IsNullOrEmpty(c.TxnId) == false) && (c.TxnId != "Billing Information|Transaction ID"))
                    select c;