开发者

Linq on TableCellCollection - C#

void foo (TableCellCollec开发者_运维百科tion 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!


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...


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
}


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.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜