【发布时间】:2009-02-11 11:48:04
【问题描述】:
我经常发现自己在 ASP.NET 中继器中填充了需要根据索引设置 CSS 类的项目:“first”用于索引 0,“last”用于索引 (length-1),“mid”在中间:
_repeater.DataSource = from f in foos
select new
{
...,
CssClass = MakeCssClass( foos, f )
};
private static string MakeCssClass( Foo[] foos, Foo f )
{
var index = Array.IndexOf( foos, f );
if( index == 0 )
{
return "first";
}
else if( index == foos.Length - 1 )
{
return "last";
}
else
{
return "mid";
}
}
有没有更好的方法可以实现这一点(例如使用 lambda 函数)?如果我尝试得到 CS0828,“无法将 lambda 表达式分配给匿名类型属性”。
【问题讨论】: