??空の文字列を結合しますか?

C# では既に null の値を代入できます ?? で .必要なのは、空の文字列を null に変換する拡張機能だけです。 、そして次のように使用します:

s.SiteNumber.NullIfEmpty() ?? "No Number";

拡張クラス:

public static class StringExtensions
{
    public static string NullIfEmpty(this string s)
    {
        return string.IsNullOrEmpty(s) ? null : s;
    }
    public static string NullIfWhiteSpace(this string s)
    {
        return string.IsNullOrWhiteSpace(s) ? null : s;
    }
}

これを行う組み込みの方法はありません。ただし、拡張メソッドが文字列または null を返すようにすることもできます。これにより、合体演算子が機能するようになります。しかし、これは奇妙で、私は個人的にあなたの現在のアプローチを好みます。

既に拡張メソッドを使用しているため、値またはデフォルトを返すメソッドを作成してみませんか?

string result = s.SiteNumber.ConvertNullOrEmptyTo("No Number");

私はこれが古い質問であることを知っています - しかし、私は答えを探していました.上記のどれも私のニーズと私が最終的に使用したものに適合しません:

private static string Coalesce(params string[] strings)
{
    return strings.FirstOrDefault(s => !string.IsNullOrEmpty(s));
}

使い方:

string result = Coalesce(s.SiteNumber, s.AltSiteNumber, "No Number");

編集: この関数をさらに簡潔に記述する方法は次のとおりです。

static string Coalesce(params string[] strings) => strings.FirstOrDefault(s => !string.IsNullOrEmpty(s));