РЕДАКТИРОВАТЬ
Это гораздо более простая версия того же самого:
public int getBoardIndex(int BoardId)
{
return (from category in this
from board in category.CategoryBoards
where board.BoardId == BoardId
select category.CategoryBoards.ToList().IndexOf(board)).FirstOrDefault();
}
Оригинальная версия
Чтобы получить индекс первой подходящей доски в своей собственной категории, сначала найдите категорию, а затем получите индекс доски:
public int getBoardIndex(int BoardId)
{
var categoryBoard = (from category in this
from board in category.CategoryBoards
where board.BoardId == BoardId
select new {category, board}).FirstOrDefault();
return categoryBoard.category.CategoryBoards.IndexOf(categoryBoard.board);
}
Чтобы получить индекс первой совпадающей доски в уплощенной коллекции средивсе категории, тогда @Dan Tao имеет лучший ответ.