0

別のオブジェクト内のオブジェクトのリストに対してオブジェクトをチェックする linq クエリを書きたいと思います。

ここに私が思いついたものがありますが、これは最初のものにのみデフォルト設定されているため、正しい結果が得られないため、両方のオブジェクトと atSite 1のみSite 2が表示されSite 1ます。

filteredData = data
               .where(f => filterInfo.Site.Name.Contains
                               (f.EtaSites.FirstOrDefault().Site.Name)).ToList()

はリストdataであり、各Dataオブジェクト内には のリストがありEtaSitesます。それぞれEtaSiteSite. Dataオブジェクトは複数のに存在する可能性があります。Siteつまり、EtaSitesリストには 2 つのオブジェクトがあります。Data私のクエリは、リストで選択されたオブジェクトをプルする必要がSiteあります。したがって、複数のサイトにあるものについては、同じオブジェクトを選択Site 1またはSite 2返すことができるはずです。Data

4

1 に答える 1

5

これを試して:

filteredData = data
    .Where(f => f.EtaSites
        .Any(a => filterInfo.Site.Name.Contains(a.Site.Name)))
    .ToList();

とにかく、上記の例では、フィルターで完全に一致するものだけを選択できます。で部分一致値を使用する場合は、以下を検討する必要があると思いますfilterInfo.Site.Name

filteredData = data
    .Where(f => f.EtaSites
        .Any(a => a.Site.Name.Contains(filterInfo.Site.Name)))
    .ToList();
于 2013-05-03T13:09:26.830 に答える