我有一个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;
不确定为什么会发生这种情况? Doe有人有什么想法吗?
答案 0 :(得分: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;
答案 1 :(得分: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;