我一直希望能夠使用下面的代碼行,但C#編譯器不會讓我。對我來說,看起來很明顯,並明確我想要什麼。在c中創建極簡主義數組#
myString.Trim({'[', ']'});
我可以用我的acheive目標:
myString.Trim(new char[]{'[', ']'});
所以我不知道死是有任何其他方式做到這一點更接近第一種方法?
我一直希望能夠使用下面的代碼行,但C#編譯器不會讓我。對我來說,看起來很明顯,並明確我想要什麼。在c中創建極簡主義數組#
myString.Trim({'[', ']'});
我可以用我的acheive目標:
myString.Trim(new char[]{'[', ']'});
所以我不知道死是有任何其他方式做到這一點更接近第一種方法?
的string.Trim(...)
方法實際上是將params
說法,那麼,你爲什麼不直接稱之爲:
myString.Trim('[', ']');
你也可以試試這個:
myString.Trim("[]".ToCharArray());
其他都集中在具體的例子(使用的事實,這是一個參數數組是要走的樣子),但你可能有興趣在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);
...
}
如果你以前從來沒有使用過'params',那麼在IDE幫助中查找它是非常值得的... – jerryjvl 2009-05-29 05:31:53
我總是忘記單引號來表示字符。微妙但重要。 – HitLikeAHammer 2009-05-29 05:36:32