简体   繁体   English

将字符串的值转换为KeyValuePair的变量<TKey,TValue>

[英]Converting the value of a string to a variable of KeyValuePair<TKey,TValue>

I was doing something like this : 我做的是这样的:

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;
}

But then again I want to do something like the following : 但是我又要做以下事情:

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
    ....
  }
}

Is there anyway for me to cast the value of antennaIsEnabled as a KeyValuePair variable datatype? 反正我是否将antennaIsEnabled的值转换为KeyValuePair变量数据类型?

I suppose you want to extract the selectReader as key and AntennaIsEnabled as value 我想你要提取的selectReader关键和AntennaIsEnabled作为价值

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

Need to add some error checking... 需要添加一些错误检查...

It sounds like you want a result that looks like this: 听起来你想要一个看起来像这样的结果:

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);
}

Then you can access the state of each antenna by using a syntax like AntennaIsEnabled[2]. 然后,您可以使用AntennaIsEnabled [2]等语法访问每个天线的状态。

尝试使用FastMember库以字符串形式访问您的属性。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 物业KeyValuePair <TKey, Tvalue> .Value没有二传手 - The property KeyValuePair<TKey, Tvalue>.Value has no setter 为什么IDictionary <TKey,TValue>扩展ICollection <KeyValuePair <TKey,TValue >>? - Why does IDictionary<TKey, TValue> extend ICollection<KeyValuePair<TKey, TValue>>? 是否有与IEnumerable相同的结构 <KeyValuePair<TKey, TValue> &gt;? - Is there a structure identical to IEnumerable<KeyValuePair<TKey, TValue>>? KeyValuePair <TKey, TValue> .ToString实现细节 - KeyValuePair<TKey, TValue>.ToString implementation details 创建可枚举的扩展方法TryGetValue(TKey,out TValue) <KeyValuePair<TKey, TValue> &gt;就像字典一样 <TKey, TValue> - Create Extension Method TryGetValue(TKey, out TValue) of Enumerable<KeyValuePair<TKey, TValue>> just like of Dictionary<TKey, TValue> 实现自己的KeyValuePair版本的问题<TKey, TValue> - Problem with implementation own version of KeyValuePair<TKey, TValue> 转换字典<TKey, List<TValue> &gt; 到 ReadOnlyDictionary <TKey, ReadOnlyCollection<TValue> &gt; - Converting Dictionary<TKey, List<TValue>> to ReadOnlyDictionary<TKey, ReadOnlyCollection<TValue>> Json.NET 序列化字典<TKey, TValue>对比键值对<TKey, TValue> - Json.NET serializing Dictionary<TKey, TValue> vs KeyValuePair<TKey, TValue> 使用字典<TKey,TValue> (IEnumerable <KeyValuePair<TKey,TValue> &gt;) C# 中的构造函数 - Using Dictionary<TKey,TValue>(IEnumerable<KeyValuePair<TKey,TValue>>) Constructor in C# 我应该如何构建一个 SortedDictionary<tkey, tvalue> 来自 IEnumerable <keyvaluepair<tkey, tvalue> &gt;? </keyvaluepair<tkey,></tkey,> - How should I construct a SortedDictionary<TKey, TValue> from an IEnumerable<KeyValuePair<TKey, TValue>>?
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM