如何使用linq做到这一点?

可能重复:
IEnumerable <T>的foreach相当于LINQ

请帮我弄清楚如何用linq表达式替换下面的循环:


using System.Web.UI.WebControls;
...
Table table = ...;
BulletedList list = new BulletedList();

foreach (TableRow r in table.Rows)
{
    list.Items.Add(new ListItem(r.ToString()));
}

这是一个人为的例子,实际上我不会将行转换为字符串。

我在问如何使用BulletedList.AddRange,并使用linq语句为它提供一个从表创建的项目数组。

谢谢! 康斯坦丁


考虑使用带有新ListItems数组的AddRange() 。 您必须使用.Cast()才能获得TableRowIEnumerable

  list.Items.AddRange(
         table.Rows.Cast<TableRow>()
                   .Select(x => new ListItem(x.ToString()))
                   .ToArray()
   );

怎么样

list.Items.AddRange(table.Rows.Select(r => new ListItem(r.ToString())));
链接地址: http://www.djcxy.com/p/53001.html

上一篇: how to do this using linq?

下一篇: Select and ForEach on List<>