Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何使用linq实现这一点?_C#_.net_Asp.net_Linq - Fatal编程技术网

C# 如何使用linq实现这一点?

C# 如何使用linq实现这一点?,c#,.net,asp.net,linq,C#,.net,Asp.net,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())); } 这是一个人为的例子,实际上我当然不会将行转换为字符串 我问的是如

可能重复:

请帮助我找出如何用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语句从表中创建的项数组

谢谢! 康斯坦丁怎么样

list.Items.AddRange(table.Rows.Select(r => new ListItem(r.ToString())));

考虑将
AddRange()
与新的
列表项数组一起使用。您必须
.Cast()
才能获得
表格行的
IEnumerable

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

我无法将Select应用于表。行,可以吗?那是我的错误,只是写了一些东西作为想法,正如p.campbell指出的,您需要先强制转换,然后在末尾调用ToArray()。请参见@aksonu:欢迎使用StackOverflow!请投票选出对您有帮助的答案,并将对您帮助最大的答案标记为已接受(单击复选标记)。这是一个声誉系统,它有助于提高您的声誉,并确保您的问题得到高质量的答案。@aksonu:记住对您在StackOverflow中发现的有帮助的答案进行投票-每个答案分数上方/下方的灰色三角形。不是为了捞取选票,只是想帮忙!:)这适用于所有答案,即使那些不是关于你所问问题的答案!不能声誉不够:)谢谢你的帮助。