1

それぞれが List of Country プロパティを持つモノのリストがあります。

public class Thing
{
  public string Name
  public List<Country> Countries;
}

List<Thing> AllThings;

今、私は興味のある国のリストも持っています:

List<Country> interestingCountries;

InterestingCountries リストにすべての郡を含むすべての Thing を見つけるにはどうすればよいですか? たとえば、私はこれらのものを持っています:

thing1.countries = (NL, BE, FR)
thing2.countries = (NL, BE)
thing3.countries = (FR, BE)
thing4.countries = (NL, BE)
thing5.countries = (NL)

そして、これらの興味深い国:

interestingCountries = (NL, BE)

結果には、thing1、thing2、thing4 が含まれている必要があります。

私はもう試した:

result = AllThings;
      foreach (var country in interestingCountries )
            result = result.Where(p => p.Countries.Any(c => c == land));   

これは、国として NL または BE を持つすべてのものを返します...

4

3 に答える 3

1

これを試して:

AllThings.Where(thing => thing.Countries.Intersect(interestingCountries).Count() == interestingCountries.Count);
于 2013-06-17T09:29:03.627 に答える
1

すべてのthingテストで、interestingCountriesに含まれていない要素が含まれている場合thing.Countries。(これにより、thing1、thing2、thing4 が返されます。)

AllThings.Where(t => !interestingCountries.Except(t.Countries).Any());
于 2013-06-17T10:11:37.617 に答える