リストに格納されている特定のクラスのプロパティを使用してコンマ区切りの値のリストを作成するための、この非常に便利な小さなコードを見つけました (Google の ToComma リンク - 記事は codeproject にあります)。
特定のセパレーターを処理するように変更しましたが、うまく機能しますが、特定のオブジェクトのプロパティの一部にnull値が含まれることがあり、このコードを拡張してnullを処理して置き換えることができるかどうか疑問に思っていますプロパティの型に基づくデフォルト値、つまり文字列の場合は null を string.empty に置き換え、数値の場合は 0 に置き換え、bool の場合は false に置き換えます。
コンマ区切りの値で構築しようとしている問題のプロパティに null 値が含まれている場合、エラーがスローされます。つまり、オブジェクト参照がインスタンスに設定されていません...
コードは次のとおりです。
public static string ToSeparator<T, TU>(this IEnumerable<T> source,
Func<T, TU> func, string separator)
{
return string.Join(separator, source.Select(s => func(s).ToString()).ToArray());
}
たとえば、Person オブジェクトが FirstName、Surname、Age で構成されるリスト、つまり List Persons があると仮定すると、次のように簡単に呼び出すことができます。
persons.ToSeparator(m => m.FirstName, "-");
persons.ToSeparator(m => m.Age, "-");
上記のコードを使用してこれを行うことはできますか? 上記のコードを使用して実行できない場合、リンクおよび/またはラムダ式を使用してこれを処理する最良の方法は何でしょうか.
ありがとう。