TableCellCollection 上的 Linq - C#

发布于 2024-11-05 18:39:12 字数 239 浏览 0 评论 0原文

void foo (TableCellCollection bar)
{
  bar.Cast<TableCellCollection>().Where(a...
}

在上面的代码中,lambda 'a' 仍然是 TableCellCollection 而不是 TableCell,任何人都可以指出我做错了什么? 谢谢!

void foo (TableCellCollection bar)
{
  bar.Cast<TableCellCollection>().Where(a...
}

On the code above, the lambda 'a' is still a TableCellCollection rather than a TableCell, can anyone point out what I'm doing wrong?
Thanks!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

拥醉 2024-11-12 18:39:12

是的,您已经通过 Cast 调用告诉它应该是 TableCellCollection。如果您想将每个元素转换为 TableCell,那么您应该提供类型参数:

bar.Cast<TableCell>().Where(a...

Yes, you've told it that it should be TableCellCollection with your Cast call. If you want to cast each element to TableCell, that's the type argument you should give:

bar.Cast<TableCell>().Where(a...
扎心 2024-11-12 18:39:12

除了乔恩的回答之外,您的代码将在运行时导致强制转换异常。 Cast 方法适用于 IEnumerable 集合,而不是 IEnumerable。它将表现得好像您正在执行以下操作:

IEnumerable EnumerableCells = bar;

foreach (object cell in EnumerableCells)
{
    TableCellCollection newCell = (TableCellCollection)cell;// this line would throw a cast exception
}

Further to Jon's answer your code would cause a cast exception at runtime. The Cast method works on IEnumerable collections not IEnumerable<t>. It would act as if you were doing the below:

IEnumerable EnumerableCells = bar;

foreach (object cell in EnumerableCells)
{
    TableCellCollection newCell = (TableCellCollection)cell;// this line would throw a cast exception
}
爱人如己 2024-11-12 18:39:12

我发现这很有用

var eta = e.Row.Cells;

eta.Cast<TableCell>().Where(a => a.Text == "Ind_Origen").Select(a => a.Text = "Origin").FirstOrDefault();

,我使用 Linq 查询集合以查找字符串,然后更改它。如果您正在填充网格视图并想要更改标题,那么它很有用。

I found this useful

var eta = e.Row.Cells;

eta.Cast<TableCell>().Where(a => a.Text == "Ind_Origen").Select(a => a.Text = "Origin").FirstOrDefault();

I use Linq to query the collection looking for a string and then change it. Its usefull if you are filling a gridview and want to change the headers.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文