how to do this using linq?
Possible Duplicate:
LINQ equivalent of foreach for IEnumerable
请帮助我找出如何用LINQ表达式替换下面的循环:
1 2 3 4 5 6 7 8 9
| 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语句从表中创建的项数组。
谢谢!康斯坦丁
- 请参阅stackoverflow.com/questions/200574/…
- @阿克索努:欢迎来到StackOverflow!请投票选出对你有帮助的答案,并把答案标记为"接受"(点击复选标记),这是对你帮助最大的答案。这是信誉系统,有助于提高您的声誉,以及确保质量问题的答案。
- @阿克索努:记得在StackOverflow上对你觉得有用的答案进行上票表决——每个答案得分上下的灰色三角形。不要垂涎三尺,只想帮忙!:)这适用于所有的答案,即使那些不是关于你问过的问题的答案!
- 不能。声誉不够。)谢谢你的帮助。
考虑使用EDOCX1,0,用一个新的EDOCX1数组1。你要得到一个TableRow的IEnumerable。
1 2 3 4 5
| list .Items.AddRange(
table .Rows.Cast<TableRow >()
.Select(x => new ListItem (x .ToString()))
.ToArray()
); |
怎么样
1
| list .Items.AddRange(table .Rows.Select(r => new ListItem (r .ToString()))); |
- 我不能将select应用于表。行,可以吗?
- 这是我的错,只是写下了一些想法,正如P.Campbell指出的那样,你需要先进行强制转换,然后在最后调用ToArray()。