0

あなたの助けが必要です。プロジェクトのさまざまな部分でこのメソッドを再利用しようとしていますが、汎用にするのが好きです。何か案は?

    public static List<Entity1> Method1(List<AssociationEntity> searchlist)
    {
        List<Entity1> list = new List<Entity1>();
        Entity1 entity;
        foreach (AssociationEntity item in searchlist)
        {
            entity = new Entity();
            entity.ID = item.ID;
            entity.NAME = item.NAME;
            list.Add(entity);
        }
        return list;
    }

または、誰かがこれをより簡単な方法で単純化できるかもしれません。私の問題は、エンティティによって構成されるクラスの List タイプがあり、それをエンティティの 1 つのリストに変換したいということです。

つまり、

データベースから情報をロードしてリストに収集する既存のメソッドがありますが、AssociationEntity は 2 つのエンティティで構成されています

Entity1(ID, Name)
Entity2(ID, Name)
AssociationEntity (Entity1, Entity2)

List<AssociationEntity> 

Entity1 から ID にアクセスする場合は、次のようにします。

List[0].Entity1.ID

しかし、 Entity1の直接リストが必要だと想像してください。そのため、ループを実行して手動で実行する Method1 を作成しましたが、linq またはコレクション メソッドを含む関数があれば、それは素晴らしいことです。そうでない場合は、冒頭で述べたように Method1 をジェネリックにします。

前もって感謝します。

4

3 に答える 3

1

LINQ を使用するには、次のようにします。

List<Entity1> Ent1List = searchlist.Select(item => item.Entity1).ToList();
于 2013-07-09T20:33:48.190 に答える
0

Jeffery Khan のソリューションに基づいて拡張メソッドを作成することもできます。

public static class AssociationEntityExtensions
{
  public static List<Entity1> ToEntityList(this List<AssociationEntity> searchlist)
  {
    return searchlist.Select(x => new Entity1() 
      { 
        entity.ID = x.ID, 
        entity.NAME = x.NAME     
      })
      .ToList();
  } 
}

使用法:

List<AssociationEntity> mysearchlist = new List<AssociationEntity>();
List<Entity1> myentities = mysearchlist.ToEntityList();
于 2013-07-09T20:38:37.453 に答える