自定义对象列表 - Linq 筛选类似于 SQL 'Like' 子句
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,
现在在我的列表框中,用户可以select:
乙,
体重,
高炉,
北京,
所以我需要一个查询,当用户 selects 'B' 在列表框中时,我想删除上面所有的 B1-B9 邮政编码。
如果用户 selects 'BW' 我想删除所有 BW 邮政编码。
customerList.Where(c => c.Postcode.StartsWith(postcodeID.ToString()));
这适用于邮政编码 id = BL 的情况,但是当邮政编码的第二个字符为数字时呢? B1-B9。我如何 select 所有邮政编码类似于 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"));
}
我正在使用一个非常有用的数据表,但是我决定将其转换为自定义对象列表以保留一些系统资源。
在我的客户列表中,我有带有邮政编码的对象:
B1 7NY, B2 8JK, B1 XLS, B9 2BY,
BW7 1NJ, BF9 3NJ, BJ4 2NP, BW8 5DO,
现在在我的列表框中,用户可以select: 乙, 体重, 高炉, 北京,
所以我需要一个查询,当用户 selects 'B' 在列表框中时,我想删除上面所有的 B1-B9 邮政编码。
如果用户 selects 'BW' 我想删除所有 BW 邮政编码。
customerList.Where(c => c.Postcode.StartsWith(postcodeID.ToString()));
这适用于邮政编码 id = BL 的情况,但是当邮政编码的第二个字符为数字时呢? B1-B9。我如何 select 所有邮政编码类似于 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"));
}