1

私は次のものを持っています:

public class Address{
    public string Number { get; set; }
    public string Street { get; set; }
    public string Suburb { get; set; }
}

List<Address> MyAddressList = new List<Address>();

Address MyAddress = new Address();
myAddress.Number = "5"
myAddress.Street = "Smith St"
myAddress.Suburb = "Smithsville"
MyAddressList.Add(MyAddress);

Address MyAddress2 = new Address();
myAddress2.Number = "10"
myAddress2.Street = "John St"
myAddress2.Suburb = "Johnsville"
MyAddressList.Add(MyAddress2);

string [] StreetToFind = new string {"Smith St"};
string [] SuburbToFind = new string {"Smithsville"};
string [] secondSuburbToFind = new string {"Johnsville"};

このリストを検索して値の組み合わせを探し、組み合わせが見つかった場合は bool を返します。

まず、Street プロパティで個々の値を検索できます。

bool StreetIsFound = MyAddressList.Select(x => x.Street).Intersect(StreetToFind).Any();

郊外の場合も同じです。

bool SuburbIsFind = = MyAddressList.Select(x => x.Suburb).Intersect(SuburbToFind).Any();

しかし、両方を組み合わせて検索できるようにしたい (bool StreetandSuburbFound)

StreetToFind と SuburbToFind を検索すると、StreetandSuburbFound は true になりますが、StreetToFind と secondSuburbToFind を検索すると false になります。

4

2 に答える 2

5

を 1 回呼び出すだけで、これらすべてを実行できますAny。このような

var isFound = MyAddressList.Any(x => StreetToFind.Contains(x.Street) && SuburbToFind.Contains(x.Suburb));

またはクエリ構文で

var isFound =
    (from x in MyAddressList
     where StreetToFind.Contains(x.Street)
        && SuburbToFind.Contains(x.Suburb)
     select x)
    .Any();
于 2013-03-28T02:05:33.503 に答える
1

または、pswg のコードのメソッド チェーン バージョン:

MyAddressList.Any(x => StreetToFind.Contains(x.Street) 
                       && SuburbToFind.Contains(x.Suburb))

(明らかに必要に応じて微調整しますContains

于 2013-03-28T02:09:33.700 に答える