在asp.net中为每个下载列表VS数据绑定

时间:2011-09-06 16:20:12

标签: c# asp.net linq webforms

填充下拉列表的方法更有效?

var info = db.table.Where( x => x.column == targetInformation).
           Select(x => new {x.item, x.index});

**************FOREACH
foreach( var infos in info)
{
   drowDownList.Items.Add(new {infos.item,infos.index.ToString()});
}
**************DATABIND
dropDownList.DataSource = info;
dropDownList.DataBind();

2 个答案:

答案 0 :(得分:2)

如John Saunders所述,这里的效率并不值得考虑,尤其是考虑使用数据库操作。

换句话说,每个人的表现几乎都是一样的。

但是,您应该考虑的是,作为程序员,您应该更有效地阅读?此外,您是否要与团队中的其他人共享此代码?它们是否更习惯于WPF风格的代码,或更多的手动代码风格?

在这种情况下,最好的效率可能是为您和您的同事最大限度地提高此代码的可读性。

答案 1 :(得分:0)

这有点不同,但您可以尝试这样的事情:

var results = table.AsEnumerable().Where(row => row.Field<int>("SomeType") > 1);

foreach (DataRow row in results)
{
    dropDownList.Items.Add(row.Field<string>("SomeText"), row.Field<int>("SomeID"));
}

//you don't need to databind if you're adding the items manually
//dropDownList.DataSource = info; 
//dropDownList.DataBind();