0

teamID とチーム名のリストを選択してドロップダウン リストに入力する LINQ クエリがあります。クエリは次のようになります。

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

ただし、結果セットを 2D 文字列配列の形式にする必要があります。これは、DDL を設定する関数が必要とするためです。for ループを使用して配列を作成できることはわかっていますが、可能であれば、すべてを 1 つのステップで実行したいと考えています。

これに似たものはありますか?

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 に答える