我有一个LINQ查询,它选择一个teamID和团队名称列表来填充下拉列表。查询如下所示:
var teams = db.Teams.Where(t => t.isActive)
.Select(t => new {t.TeamID, t.TeamName});
但是,我希望结果集采用2D字符串数组的形式,因为这是我填充DDL所需的函数。我知道我可以使用for循环并构建数组,但我更喜欢它,如果可能的话,只需一步完成。
有类似的东西吗?
string[][] teams = db.Teams.Where(t => t.isActive)
.Select(t => new {t.TeamID, t.TeamName})
.To2DArray();
答案 0 :(得分: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();
答案 1 :(得分:3)
种类:
string[][] teams = db.Teams.Where(t => t.isActive).Select(t => new[] {t.TeamID, t.TeamName}).ToArray();