0

私のコード:

    namespace Reflection

    {

    class Program
    {
        static void Main(string[] args)
        {
            Type t = typeof(Product);
            PropertyInfo[] proInfo = t.GetProperties();
            foreach (var item in proInfo)
            {
                Console.WriteLine(item.Name);
            }
        }
    }
    public class Product
    {

        public int ProId { get; set; }
        public string ProName { get; set; }
        public string Description { get; set; }
        public decimal UnitPrice { get; set; }
    }

すべてのプロパティ名を出力として取得しますが、出力に ProId と Decription を表示したくありません。

4

2 に答える 2

0

リストに表示したくない/表示したくないフィールドに属性を追加し、その後、そのGetProperties()属性を探してそれらを除外する必要があります。

于 2013-03-06T11:03:55.793 に答える
0

表示したくないプロパティが 2 つしかない場合の簡単な解決策は、それらを具体的にフィルタリングすることです。これには LINQ のWhereを使用できます。

    Type t = typeof(Product);
    PropertyInfo[] proInfo = t.GetProperties().Where( p => p.Name != "ProdId" && p.Name != "Description").ToArray() ;

    foreach (var item in proInfo)
    {
        Console.WriteLine(item.Name);
    }

または、次のようなものでもあります。

string[] dontShow = { "ProId", "Descrpition" };

Type t = typeof(MyObject);
PropertyInfo[] proInfo = t.GetProperties()
        .Where(p => !dontShow.Contains(p.Name)).ToArray();
于 2013-03-06T11:06:10.040 に答える