C#( .NET )でListの中身を一気にダンプする

C#( .NET )でListの中身を一気にダンプする

var Clothes = new List<Cloth>() {
    new Cloth {id = 7000, name = "MY-ITEM-7000"} ,
    new Cloth {id = 7001, name = "MY-ITEM-7001"} ,
};

Clothes.ForEach(x =>
{
    Debug.WriteLine(x.ToStringReflection());
});

● ObjectExtensions.cs

こちらのファイルを読み込ませる必要があります

using System.Linq;
using System.Reflection;

/// <summary>
/// object型の拡張メソッドを管理するクラス
/// </summary>
public static class ObjectExtensions
{
    private const string SEPARATOR = ",";       // 区切り記号として使用する文字列
    private const string FORMAT = "{0}:{1}";    // 複合書式指定文字列

    /// <summary>
    /// すべての公開フィールドの情報を文字列にして返します
    /// </summary>
    public static string ToStringFields<T>(this T obj)
    {
        return string.Join(SEPARATOR, obj
            .GetType()
            .GetFields(BindingFlags.Instance | BindingFlags.Public)
            .Select(c => string.Format(FORMAT, c.Name, c.GetValue(obj))));
    }

    /// <summary>
    /// すべての公開プロパティの情報を文字列にして返します
    /// </summary>
    public static string ToStringProperties<T>(this T obj)
    {
        return string.Join(SEPARATOR, obj
            .GetType()
            .GetProperties(BindingFlags.Instance | BindingFlags.Public)
            .Where(c => c.CanRead)
            .Select(c => string.Format(FORMAT, c.Name, c.GetValue(obj, null))));
    }

    /// <summary>
    /// すべての公開フィールドと公開プロパティの情報を文字列にして返します
    /// </summary>
    public static string ToStringReflection<T>(this T obj)
    {
        return obj.ToStringProperties();
    }
}

引用 : http://baba-s.hatenablog.com/entry/2014/02/27/000000

No.1558
07/22 15:44

edit