我一直希望能够使用下面这一行,但C#编译器不会让我这么做。对我而言,对于我想要的东西,这似乎是显而易见和明确的。
myString.Trim({'[', ']'});
我可以使用以下方式实现我的目标:
myString.Trim(new char[]{'[', ']'});
所以我不知道有没有其他方法可以做到更接近第一种方法?
答案 0 :(得分:8)
string.Trim(...)
方法实际上需要params
个参数,所以,为什么不只是调用:
myString.Trim('[', ']');
答案 1 :(得分:6)
其他人专注于具体的例子(并使用它是一个参数数组的事实),但你可能对C#3的隐式输入感兴趣。你可以写了:
myString.Trim(new[] {'[', ']'});
非完全像你一样紧凑,因为你仍然需要表达“我想要创建一个数组”的概念,除非你正在编写一个变量初始化器,但是它的类型数组是从内容中推断出来的。
这个大用例是匿名类型:
var skeets = new[] {
new { Name="Jon", Age=32 },
new { Name="Holly", Age=33 },
new { Name="Tom", Age=5 },
new { Name="Robin", Age=3 },
new { Name="William", Age=3 }
};
这里无法写出该类型的名称,因为它没有名称(在C#中可以表达)。
关于您的具体示例还有另外一点 - 如果您要经常使用它(即经常调用Trim
方法),您可能希望每次都避免创建新数组:
private static readonly char[] SquareBrackets = {'[', ']'};
public void Whatever() {
...
foo = myString.Trim(SquareBrackets);
...
}
答案 2 :(得分:3)
答案 3 :(得分:3)
你也可以试试这个:
myString.Trim("[]".ToCharArray());