首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >C#类型转换帮助

C#类型转换帮助
EN

Stack Overflow用户
提问于 2011-04-17 15:11:20
回答 3查看 82关注 0票数 0

我有一个如下的结构,

代码语言:javascript
复制
struct Location
{
    public int Row;
    public int Column;

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

我有一个如下的函数,

代码语言:javascript
复制
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();
}

我希望返回类型是位置列表,我该怎么做?提前感谢

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-04-17 15:16:04

..。

代码语言:javascript
复制
select new Location(x, y);
票数 2
EN

Stack Overflow用户

发布于 2011-04-17 15:16:50

代码语言:javascript
复制
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
EN

Stack Overflow用户

发布于 2011-04-17 15:18:32

您应该使用select new Location(x, y),而不是使用返回匿名类型的select new { x, y }

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5692134

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档