c# - 在列表中搜索组合

标签 c# list search combinations

我有以下内容:

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 Property 中搜索单个值:

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 将为真,但如果搜索 StreetToFind 和 secondSuburbToFind,则为假。

最佳答案

您只需调用一个电话 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();

关于c# - 在列表中搜索组合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15672972/

相关文章:

c# - 如何在 xamarin 中从 Syncfusion 绑定(bind) SfMaskedEdit?

database - 在 Redis 中搜索与给定模式不匹配的键

c# - 加速 SqlDataSource 的技巧?

python - 如何克隆一个列表以使其在分配后不会意外更改?

java - 如何将 Java List 传递给 Scala,在 Scala 中对其进行过滤并返回给 Java?

java - 在一行中用数组初始化 ArrayList

ruby - "google-search"gem 的示例代码不起作用?

php - 使用 php 在 css 中搜索特定类

c# - 防止在 WebAPI OData v4 服务中发出空值

c# - 将对象序列化为具有属性和子元素的元素