“IF”语句中的通配符

问题描述 投票:0回答:1

我正在尝试使用通配符创建过滤器。我有一个所有图层的字符串列表,但我想排除某些图层“0”、“Defpoints”以及以 -LT、-LT1 等结尾的任何图层。

if ((ltr.Name != "0") && (ltr.Name.ToUpper() != "DEFPOINTS") && (ltr.Name != "*LT*"))
{
    AllLayerList.Add(ltr.Name);
}

希望有人帮忙,谢谢。

我只想将这些 LT 图层从我的列表中排除。在网上找不到任何有帮助的东西。

c# if-statement wildcard autocad
1个回答
0
投票

正如 @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)

 代替。

© www.soinside.com 2019 - 2024. All rights reserved.