![](/img/trans.png)
[英]How to check equality of collection type properties, using reflection in C#
[英]How to skip unwanted properties when using reflection in C#
我正在使用反射來從類中獲取所有屬性,如下所示:
var props = item.GetType().GetProperties(BindingFlags.Public | BindingFlags.Instance); // todo: cache & filter not-needed props)
var itemStr = string.Join(", ",
props.Select(p => p.GetValue(item, null)?.ToString())
.ToArray());
item是對象類型Person的定義如下:
public sealed class Person : KnowYourCustomerBase
{
[DataMember]
public string Surname { get; set; }
[DataMember]
public string FirstName { get; set; }
[DataMember]
public string MiddleName { get; set; }
[DataMember]
public string Address4 { get; set; }
[DataMember]
public string DateOfBirth { get; set; }
[DataMember]
public string NationalID { get; set; }
[DataMember]
public string Gender { get; set; }
}
如何編輯獲取所有屬性的代碼行,並返回它們(例如,除NationalID外的所有屬性)?
var toExclude = new HashSet<string>("NationalID", ...);
var props = item.GetType().GetProperties(BindingFlags.Public | BindingFlags.Instance).
Where(property => !toExclude.Contains(property.Name));
將...替換為要排除的其他屬性的名稱和Enumerable。此處將僅保留那些不在集合中的屬性。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.