为什么查询子句中不允许使用out变量?
如果我在这里使用out变量,它会失败:
string json = "{'PayDays':['2017-07-07','2017-07-21','2017-08-04','2017-08-18']}";
var pd = JsonConvert.DeserializeObject<Accounting>(json);
var rm = from item in pd.PayDays
where (DateTime.TryParse(item, out DateTime dateresult)) ?
dateresult.Subtract(DateTime.Now).Days >= 0 ? true : false : false
select item;
rm.Dump();
但是旧的方式也可以工作:
DateTime result;
var rm = from item in pd.PayDays
where DateTime.TryParse(item, out result) ? (result.Subtract(DateTime.Now).Days >= 0 ? true : false) : false
select item;
rm.Dump();
from item in pd.PayDays.AsParallel() let resultHolder = new DisplayClass() where DateTime.TryParse(item, out resultHolder.result) ? ... : ... select item;
,使用与已经为其他原因生成的相同类型的DisplayClass
类。您能否举一个这种简单方法不起作用或表现出意外行为的例子? - user743382