我正在尝试使用通配符创建过滤器。我有一个所有图层的字符串列表,但我想排除某些图层“0”、“Defpoints”以及以 -LT、-LT1 等结尾的任何图层。
if ((ltr.Name != "0") && (ltr.Name.ToUpper() != "DEFPOINTS") && (ltr.Name != "*LT*"))
{
AllLayerList.Add(ltr.Name);
}
希望有人帮忙,谢谢。
我只想将这些 LT 图层从我的列表中排除。在网上找不到任何有帮助的东西。
正如 @codeulike 在他们的评论中提到的 ,C# 不会以这种方式进行这些类型的字符串比较。在您的示例中,您可以使用 string.Contains
if (ltr.Name != "0" && ltr.Name.ToUpper() != "DEFPOINTS" && !ltr.Name.Contains("LT"))
{
AllLayerList.Add(ltr.Name);
}
如果其他案例名称中可能包含“LT”并且应包含在内,则可能需要更改以更具体地说明要排除的案例。如果“LT”可以小写,则可以使用
!ltr.Name.Contains("LT", StringComparison.OrdinalIgnoreCase)
代替。