1

Linq私は私がの明確なリストを返すことを可能にするステートメントを書き込もうとしています

obj1 objects that contain obj2.sID == ASpecified# or obj3.sID == ASpecified#

私の質問がより理にかなっていることを期待して、実体図の例を含めようとしましたが、残念ながら、私には十分な評判がありません。だから私はコードでそれをする必要があると思います。以下は私のオブジェクトです。

public class obj1
{
    public int obj1_id { get; set; }
    public String obj1Prop1 { get; set; }
    public String obj1Prop2 { get; set; }
    public List<obj2> obj2List { get; set; }
    public List<obj3> obj3List { get; set; }
}
public class obj2
{
    public int obj2_id { get; set; }
    public String obj2Prop1 { get; set; }
    public String obj2Prop2 { get; set; }
    public Int32 sID { get; set; }
}
public class obj3
{
    public int obj3_id { get; set; }
    public String obj3Prop1 { get; set; }
    public String obj3Prop2 { get; set; }
    public Int32 sID { get; set; }
}

私は単純なlinqステートメントにかなり精通していますが、これは私のリーグから少し外れています。sID参加obj3obj2する必要があると思いますが、よくわかりません。

任意の助けや指示をいただければ幸いです。

4

1 に答える 1

2

参加する必要はありません。
次のコードスニペットを試してください

var o1 = new List<obj1>(); // Add items to list
var specificId = "123"; // specific id
var listObj1 = o1.Where(o => o.obj2List.Any(o2 => o2.sID == specificId) ||
                             o.obj3List.Any(o3 => o3.sID == specificId)).ToList();
于 2013-01-11T19:50:05.550 に答える