如何操纵linq的结果
本文关键字:linq 结果 操纵 何操纵 | 更新日期: 2023-09-27 18:14:44
我有一个年份的下拉列表,问题是我想检查列表中最近的年份并添加1..因此,如果列表中最晚的年份是2011年,我将手动添加1,以便它也显示2012年…这是我的代码供你参考。
var b = (from a in sampleworker.getyear()
orderby a.Year
select new
{
a.Year
}
).Distinct();
b += int.Parse( (b.First()).ToString() ) + 1;
drp_year.DataSource = b;
drp_year.DataBind();
提前感谢大家!
我假设你在b+=行上得到一个错误,因为Distinct()函数将返回一个IEnumerable对象。注意,你试图在那一行给b赋值一个整数,但在同一行你调用了b. first(),这显然是你不能用整数做的。
看起来你真正想要的是
b.Add(b.First() + 1);
然而,这也行不通。你必须这样做:
var yearList = b.ToList();
yearList.Add(b.First() + 1);
然后你可以设置你的DataSource为它。还有,Year是什么数据类型?它显然不是字符串,因为你必须对它使用ToString()方法。我认为它不是整数,因为你在它上面使用了int。parse()。这让我相信它可能是一个DateTime,如果是这样,为什么不使用已经存在于DateTime对象上的方法来操作日期,而不是在类型之间进行转换?
编辑:在发现Year实际上是int之后,我调整了上面的代码块。同样,他的原始代码中的"select new {a.Year}"应该只是"select a.Year"。