0

我有一个 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;

不确定为什么会这样?有人有什么想法吗?

4

2 回答 2

2

这将给出一个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;
于 2013-04-26T13:49:07.300 回答
2

这有效

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;
于 2013-04-26T13:50:36.757 回答