1

タイプのリストを返す関数があります:List <Id:Name、Name:string>このリストタイプを返すためにC#でどのように指定しますか?

コードは次のとおりです。

    public ?????? GetDepartements( int idRegion )
    {
        var a = (from o in _meilleurPrestaEntities.Departements
                where o.de_id_region == idRegion
                select new {Id = o.id_departement, Name = o.nom}).ToList();

        return a;
    }

リターンはJsonの結果として使用されます。

ありがとう

4

4 に答える 4

4

キーと値のペアを使用することをお勧めします

return List<KeyValuePair<int,string>>()

[編集]コードを少し変更する必要があります-次のようになります。

 var a = (from o in _meilleurPrestaEntities.Departements
                where o.de_id_region == idRegion
                select new KeyValuePair<int,string>(o.id_departement,o.nom}).ToList();
于 2012-04-21T22:38:14.590 に答える
2

できません。匿名型のリストがあり、メソッドの戻り型の一部として匿名型を指定することはできません(または、使用できない場合を除いて、他のほとんどの場所でvar)。

これを修正するには、いくつかのオプションがあります。

  • リターンタイプを表す通常のクラスを作成し、それをリターンタイプで使用します。
  • のようなものを使用してくださいList<Tuple<int, string>>
  • 戻りList<dynamic>ます。このようにして、戻り値を通常どおりに処理できますが、コンパイル時のチェックやIntelliSenseは取得されません。
  • 戻りList<object>ます。これは、通常の方法でプロパティにアクセスする必要がない場合に役立ちますが、結果はリフレクションを使用するものにのみ渡されます。
于 2012-04-21T22:41:27.050 に答える
0

タイプを指定してから、そのタイプを戻り値とselectステートメントで使用する必要があると思います。

于 2012-04-21T22:38:51.107 に答える
0

dynamicVisualStudioを開いて試してみませんが、この場合は実際に戻ることができると思います。または、を使用できますExpandoObject

ただし、他の人が述べているように、「より良い」方法は、またはのようなものを使用するTupleKeyValuePair、怠惰ではなく、ビューに戻るものの実際のモデル(つまり、「ビューモデル」)を作成することです。 。

于 2012-04-21T23:16:42.993 に答える