0

「アカウント」という名前のオブジェクトと次のコードがあります。

Account objAcc = new Account();
objAcc.Name = "Test";

予想通り、上記は正常に機能しています。次のような値のリストがあります。

string props = "Name,Address,Telephone";

今、私がやりたいのは、そのリストに「名前」が存在するかどうかを確認することです。ただし、使用するオブジェクトしかありません (オブジェクトが動的であるため、case ステートメントなどをハードコーディングすることはできません)。そのため、objAcc.Name から何らかの方法で「名前」を取得し、それがリスト。

事前に感謝します。十分に明確であることを願っています。

デイブ

4

2 に答える 2

2

それを行うことで、リフレクションを使用できます:

var properties = objAcc.GetType().GetProperties();
foreach(var property in properties)
{
  if(props.Contains(property.Name))
  {
     //Do you stuff
  }
}
于 2013-07-25T10:05:17.543 に答える
1
string test = objAcc.GetType().GetProperty("Name") == null ? "" : objAcc.GetType().GetProperty("Name").Name;
bool result = "Name,Address,Telephone".Split(',').Contains(test);

必要に応じて、次の方法を使用できます。

public bool PropertyExists<T>(string propertyName, IEnumerable<string> propertyList,T obj)
{
    string test = obj.GetType().GetProperty(propertyName) == null ? "" : obj.GetType().GetProperty(propertyName).Name;
    bool result = propertyList.Contains(test);
    return result;
}

ヤニス

于 2013-07-25T10:10:39.500 に答える