我是linq的新手,这会不断在空卷字段中弹出。该文件是不可预测的,它将发生,因此我想在出现异常的地方添加0。有任何快速简便的方法吗?
var qry =
from line in File.ReadAllLines("C:\\temp\\T.txt")
let myRecX = line.Split(',')
select new myRec()
{
price = Convert.ToDecimal( myRecX[0].Replace("price = ", "")) ,
volume = Convert.ToInt32(myRecX[1].Replace("volume =", "")),
dTime = Convert.ToDateTime( myRecX[2].Replace("timestamp =", ""))
};
最佳答案
如果要在传入数据为null
,为空或完全由空格字符组成时使用默认值,则可以这样操作:
volume = string.IsNullOrWhitesplace(myRecX[1])
? defaultVolume // <<== You can use any constant here
: Convert.ToInt32(myRecX[1].Replace("volume =", ""))
但是,这是一种实现您所需要的“快速而肮脏的”方法,因为每个命名参数的位置都保持硬编码。一种更可靠的方法是编写一个微型分析器,该分析器注意文件中指定的属性名称,而不是用空字符串替换它们。