Architect's Log

I'm a Cloud Architect. I'm highly motivated to reduce toils with driving DevOps.

【.NET】String.TrimStartにnullまたは空の配列を渡すと空白文字が削除される

クラスライブラリリファレンスによると、String.TrimStartにnullまたは空の配列を渡すと空白文字が削除されるそうです。


戻り値
Type: System.String
現在の文字列の先頭から、trimChars パラメーターの文字をすべて削除した後に残った文字列。 trimChars が null または空の配列の場合は、代わりに空白文字が削除されます。

知らなかったので、検証してみました。

検証コード

using Microsoft.VisualStudio.TestTools.UnitTesting;

namespace SandboxTest {
    [TestClass]
    public class UnitTest1 {
        [TestMethod]
        public void 半角スペース1つにnull() {
            Assert.AreEqual("abc", " abc".TrimStart(null));
        }

        [TestMethod]
        public void 半角スペース2つにnull() {
            Assert.AreEqual("abc", "  abc".TrimStart(null));
        }

        [TestMethod]
        public void 全角スペース1つにnull() {
            Assert.AreEqual("abc", " abc".TrimStart(null));
        }

        [TestMethod]
        public void 全角スペース2つにnull() {
            Assert.AreEqual("abc", "  abc".TrimStart(null));
        }

        [TestMethod]
        public void 半角スペース1つに空の配列() {
            Assert.AreEqual("abc", " abc".TrimStart(new char[] { }));
        }

        [TestMethod]
        public void 半角スペース2つに空の配列() {
            Assert.AreEqual("abc", "  abc".TrimStart(new char[] { }));
        }

        [TestMethod]
        public void 全角スペース1つに空の配列() {
            Assert.AreEqual("abc", " abc".TrimStart(new char[] { }));
        }

        [TestMethod]
        public void 全角スペース2つに空の配列() {
            Assert.AreEqual("abc", "  abc".TrimStart(new char[] { }));
        }
    }
}

検証結果

確かにその通りになっていました。
f:id:JHashimoto:20151203220026p:plain