0

我有一个 LINQ 查询,它选择一个团队 ID 和团队名称列表来填充下拉列表。查询如下所示:

var teams = db.Teams.Where(t => t.isActive)
                    .Select(t => new {t.TeamID, t.TeamName});

但是,我希望结果集采用二维字符串数组的形式,因为这是填充 DDL 的函数所需要的。我知道我可以使用 for 循环并构建数组,但我更喜欢它,如果可能的话,一步完成。

有没有类似的东西?

string[][] teams = db.Teams.Where(t => t.isActive)
                           .Select(t => new {t.TeamID, t.TeamName})
                           .To2DArray();
4

2 回答 2

4

请注意,这string[][]不是多维数组,而是数组的数组。多维数组看起来像string[,],并且具有不同的语义(即数组的数组可能具有不同长度的子数组,但多维数组中的所有行/列都具有相同的长度)。

由于您只是在处理数组的数组,因此最简单的解决方案可能是在一系列项目上使用 ToArray,这些项目本身是用 ToArray 创建的。

以下代码假定 db.Teams 也是一个数组数组:

var teams =
    db.Teams
    .Select(teamArray =>
        teamArray
        .Where(t => t.isActive)
        .Select(t => new {t.TeamID, t.TeamName})
        .ToArray())
    .ToArray();
于 2013-07-23T18:32:14.540 回答
3

有点儿:

string[][] teams = db.Teams.Where(t => t.isActive).Select(t => new[] {t.TeamID, t.TeamName}).ToArray();
于 2013-07-23T18:18:39.640 回答