Architect's Log

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

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

前回、String.TrimStartにnullまたは空の配列を渡すと空白文字が削除されることを確認しました。


リファレンスを確認したところ、TrimEndも同じ仕様だったので、検証してみます。

戻り値
Type: System.String
現在の文字列の末尾から、trimChars パラメーターの文字をすべて削除した後に残った文字列。 trimChars が null または空の配列の場合は、代わりに Unicode の空白文字が削除されます。現在のインスタンスから文字をトリムできない場合は、メソッドは現在のインスタンスを変更せずに返します。

検証コード

using Microsoft.VisualStudio.TestTools.UnitTesting;

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

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

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

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

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

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

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

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

検証結果

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