[英]Custom Object List - Linq Filtering Similar to SQL 'Like' clause
我使用的数据表效果很好,但是我决定将其转换为自定义对象列表,以保留一些系统资源。
在我的客户清单中,我有带有邮政编码的对象:
B1 7NY,B2 8JK,B1 XLS,B9 2BY,
BW7 1NJ,BF9 3NJ,BJ4 2NP,BW8 5DO,
现在,用户可以在我的列表框中选择:B,BW,BF,BJ,
因此,我需要一个查询,当用户在列表框中选择“ B”时,我想删除所有如上所述的B1-B9邮政编码。
如果用户选择“ BW”,我想删除所有BW邮政编码。
customerList.Where(c => c.Postcode.StartsWith(postcodeID.ToString()));
当邮政编码id = BL时,此方法会很好用,但是当邮政编码2nd char为数字时该怎么办。 B1-B9。 如何选择邮政编码类似于b1-b9的所有对象?
if (char.IsDigit(postcodeID.ToString()[1]))
{
CustList.RemoveAll(c => c.Postcode[0] == postcodeID[0] &&
char.IsDigit(c.Postcode[1]));
}
else
{
CustList.RemoveAll(c => c.Postcode.StartsWith(postcodeID.ToString()));
}
您可以检查第二个char
是否为数字,并根据该数字构造查询:
if(char.IsDigit(postcodeID.ToString()[1]))
{
query = customerList.Where(c => c.Postcode[0] == 'B' &&
char.IsDigit(c.Postcode[1]));
}
else
{
query = customerList.Where(c => c.Postcode.StartsWith("BL"));
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.