C# 带有列表的实体框架查询
我得到的是数据库中带有varchars的地址列,如下所示:C# 带有列表的实体框架查询,c#,list,entity-framework,C#,List,Entity Framework,我得到的是数据库中带有varchars的地址列,如下所示: Elmstreet / 12345 / USA 它包含街道、邮政编码和国家。不幸的是,这是一个现有的数据库,我不允许在那里做任何更改。 所以现在我需要一个基于邮政编码列表的结果集 最简单的方法是: string postalCode = "12345"; addresses = addresses.Where(x => x.Address.Contains(postalCode)); 但由于我有一份邮政编码清单,我这样做了:
Elmstreet / 12345 / USA
它包含街道、邮政编码和国家。不幸的是,这是一个现有的数据库,我不允许在那里做任何更改。
所以现在我需要一个基于邮政编码列表的结果集
最简单的方法是:
string postalCode = "12345";
addresses = addresses.Where(x => x.Address.Contains(postalCode));
但由于我有一份邮政编码清单,我这样做了:
addresses = addresses.Where(x => postalCodes.Contains(x.Address));
但我没有得到任何结果。在考虑代码的作用后,这是显而易见的
我正在考虑使用一个额外的列表,在该列表中,我将使用foreach循环在邮政编码列表中添加单个结果
但是有没有更简单更好的方法呢
非常感谢 假设这是您的地址列表结构:
var addresses = new List<string>
{
"Elmstreet / 12345 / USA",
"Hollywood / 67890 / USA",
"Time Square / 77777 / USA"
}
输出将是:
foreach (var item in result)
{
Console.WriteLine(item);
}
这将产生:
Elmstreet / 12345 / USA
Time Square / 77777 / USA
假设这是您的地址列表结构:
var addresses = new List<string>
{
"Elmstreet / 12345 / USA",
"Hollywood / 67890 / USA",
"Time Square / 77777 / USA"
}
输出将是:
foreach (var item in result)
{
Console.WriteLine(item);
}
这将产生:
Elmstreet / 12345 / USA
Time Square / 77777 / USA
你在这里问的是(正如你所发现的)邮政编码列表是否包含这个完整的地址。但那不是你想要的
您要检查的是,在一个地址中是否可以找到任何邮政编码,并且只获取正确的地址。以下方法有效:
addresses = addresses.Where(x =>
postalCodes.Any(postalCode =>
x.Address.Contains(postalCode)
)
);
用词来说:给我地址字符串包含这些邮政编码的所有地址
旁白: 请记住,存在误报,例如,如果您的邮政编码为1234,而您的地址的邮政编码为12345,则会发生冲突。避免这种情况的一种方法是在邮政编码中包含地址字段中的
/
分隔符:
postalCodes = postalCodes.Select(pc => $"/ {pc} /");
// and then the rest of the code as before
这将防止大多数(如果不是全部)误报
你在这里问的是(正如你所发现的)邮政编码列表是否包含这个完整的地址。但那不是你想要的
您要检查的是,在一个地址中是否可以找到任何邮政编码,并且只获取正确的地址。以下方法有效:
addresses = addresses.Where(x =>
postalCodes.Any(postalCode =>
x.Address.Contains(postalCode)
)
);
用词来说:给我地址字符串包含这些邮政编码的所有地址
旁白: 请记住,存在误报,例如,如果您的邮政编码为1234,而您的地址的邮政编码为12345,则会发生冲突。避免这种情况的一种方法是在邮政编码中包含地址字段中的
/
分隔符:
postalCodes = postalCodes.Select(pc => $"/ {pc} /");
// and then the rest of the code as before
这将防止大多数(如果不是全部)误报。这是一列值吗
Elmstreet/12345/USA
您能否为您的地址
和邮政编码
列表提供样本数据?这样,人们就可以很容易地可视化您拥有的数据(和某些结构)。是的,这是列中的单个值。这是一个列值吗Elmstreet/12345/USA
您能否为您的地址
和邮政编码
列表提供样本数据?通过这种方式,人们可以很容易地可视化您拥有的数据(和某些结构)。是的,这是列中的单个值。嗨,Flater,是的,这是我想要的。Any()就是解决方案。非常感谢。嗨,弗拉特,是的,这就是我想要的。Any()就是解决方案。非常感谢。这也回答了我的问题。谢谢。这也回答了我的问题。谢谢