0

質の悪い質問のタイトルをお詫びします - 私が何をしているのかを説明する方法がわかりませんが、それは私が思いつくことができる最高のものです.私が求めているものが本当の名前を持っている場合は編集してください!

プロジェクトのグループを割り当てることができるプログラムがあり、さらにプロジェクトのグループに出力のグループが割り当てられます。

プログラムのすべての出力を、そのプロジェクトを通じて出力の 1 つの大きなリストとして取得したいと考えています。私はこれを持っています:

From pp In Me.ProgrammeProjects Select pp.Project.Outputs

基本的に、出力リストのリストを取得します。(出力の EntitySet の Ienumerable)。

私はLinqを強引に通り抜けていますが、これの例を見つけることができません(または、見たときに認識できません)。各 EntitySet を調べてその内容をより大きなリストに追加する for ループと Linq ではなく、Linq だけを使用してこれを行うにはどうすればよいですか?

ありがとう

4

4 に答える 4

1

または、linq コンテキストに直接反対します。

from o in context.Outputs
where o.Project.ProgrammeProjects.ID = 1
select o

逆も機能し、データ コンテキストのテーブルから直接クエリを実行します。

于 2010-01-28T17:06:06.680 に答える
0

これは私がそれを行うことに頼った方法ですが、データの量が増えると遅くなるだろうと私は言うことができます。

    Dim allOutputs As New Generic.List(Of Output)

    Dim outputLists = From pp In Me.ProgrammeProjects Select pp.Project.Outputs.ToList

    For Each outputList In outputLists
        Dim os = From o In outputList Where o.OutputTypeID = Type Select o
        allOutputs.AddRange(os)
    Next

    Return allOutputs
于 2010-01-29T09:18:13.837 に答える
0

どのような種類のデータを取得しようとしているのか、まだ少し混乱しています。これが私が理解していることです。

  1. プログラムのリストがあります
  2. 各プログラムは多くのプロジェクトを持つことができます
  3. 各プロジェクトは多くの出力を持つことができます。

目的: 特定のタイプのすべての出力を見つけること。これは正しいですか?

プロジェクトまたはプログラムに関連するデータを取得しているようには見えないため、次のようなものが機能するはずです。

   Dim allOutputs As Generic.List(Of Outputs) = (From output In Me.Outputs Where output.OutputType.Equals(Type) Select output).ToList()

それがどうなるか教えてください。

パトリック。

于 2010-01-29T16:08:58.520 に答える
0

特定のプログラムのアウトプットのリストを取得しようとしていますか?

その場合は、次のようにしてみてください。

var result = (from pp in ProgrammeProjects
where pp.Name.Equals("ProjectA")
select pp.Project.Outputs).ToList();

また

出力のリストを取得したら、ラムダ式を使用してサブセットを取得できます。

var result = (from pp in ProgrammeProjects
select pp.Project.Outputs).ToList();

var subResult = result.FindAll(target => target.OutputParameter.Equals("findThisValue");

これはあなたがやろうとしていることですか?

そうでない場合は、データ構造と何を取得しようとしているのかをもう少し詳しく教えてください。最善を尽くします。

パトリック。

于 2010-01-28T16:08:55.320 に答える