0

私はこのようなことをしていました:

foreach( KeyValuePair<int,SOME_CLASS> reader in _readerDict )
{
  var selectedReader = reader;

  var antenna1 = selectedReader.Value.Antenna1IsEnabled;
  var antenna2 = selectedReader.Value.Antenna2IsEnabled;
  var antenna3 = selectedReader.Value.Antenna3IsEnabled;
  var antenna4 = selectedReader.Value.Antenna4IsEnabled;
}

しかし、再び私は次のようなことをしたい:

foreach( KeyValuePair<int,SOME_CLASS> reader in _readerDict )
{
  var selectedReader = reader;

  for( var idx = 1; idx <= 4; idx++ )
  {
    var antennaIsEnabled = string.Format( "selectedReader.Value.Antenna{0}IsEnabled", idx );

    // cast the value of antennaIsEnabled as a KeyValuePair<int,SOME_CLASS> variable datatype here
    ....
  }
}

アンテナIsEnabledの値をKeyValuePair変数データ型としてキャストする方法はありますか?

4

3 に答える 3

2

selectReaderasキーとAntennaIsEnabledas値を抽出したいと思います

string[] parts = strA.Split('.');
var list = new List<KeyValuePair<string, string>>();
list.Add(new KeyValuePair<string, string>(part[0], part[2]));

エラーチェックを追加する必要があります...

于 2012-11-30T12:28:39.103 に答える
0

次のような結果が必要なようです。

Dictionary<int, bool> AntennaIsEnabled = new Dictionary<int, bool>();
foreach( KeyValuePair<int,SOME_CLASS> reader in _readerDict )
{
  var selectedReader = reader;

  //From your example
  AntennaIsEnabled.Add(1, selectedReader.Value.Antenna1IsEnabled);
  AntennaIsEnabled.Add(2, selectedReader.Value.Antenna2IsEnabled);
  AntennaIsEnabled.Add(3, selectedReader.Value.Antenna3IsEnabled);
  AntennaIsEnabled.Add(4, selectedReader.Value.Antenna4IsEnabled);
}

次に、AntennaIsEnabled[2] のような構文を使用して、各アンテナの状態にアクセスできます。

于 2012-11-30T12:56:31.510 に答える
0

FastMemberライブラリを使用して、プロパティに文字列としてアクセスしてみてください。

于 2012-11-30T19:05:41.290 に答える