Справка по преобразованию типов C # - PullRequest
0 голосов
/ 17 апреля 2011

У меня есть структура следующим образом:

struct Location
{
    public int Row;
    public int Column;

    public Location(int row, int column)
    {
        this.Row = row;
        this.Column = column;
    }
}

, и у меня есть функция следующим образом:

public List<Location> getNeighboringLocations(int row, int column)
{
    int[,] array = new int[rows, columns];
    int refx = row;
    int refy = column;

    //var neighbours = from x in Enumerable.Range(refx - 1, 3)
    //                 from y in Enumerable.Range(refy - 1, 3)
    //                 where x >= 0 && y >= 0 && x < array.GetLength(0) && y < array.GetLength(1)
    //                 select new { x, y };
    var neighbours = from x in Enumerable.Range(0, array.GetLength(0)).Where(x => Math.Abs(x - refx) <= 1)
                 from y in Enumerable.Range(0, array.GetLength(1)).Where(y => Math.Abs(y - refy) <= 1)
                 select new { x, y };

    return neighbours.ToList();
}

Я хочу, чтобы тип возвращаемого значения был Список местоположений, как мне сделатьЭто?Заранее спасибо

Ответы [ 3 ]

2 голосов
/ 17 апреля 2011
var neighbours = from x in Enumerable.Range(0, array.GetLength(0)).Where(x => Math.Abs(x - refx) <= 1)
                             from y in Enumerable.Range(0, array.GetLength(1)).Where(y => Math.Abs(y - refy) <= 1)
                             select new Location( x, y );

return neighbours.ToList();
2 голосов
/ 17 апреля 2011

...

select new Location(x, y);
1 голос
/ 17 апреля 2011

Вместо того, чтобы делать select new { x, y }, который возвращает анонимный тип, вы должны сделать select new Location(x, y).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...