[英]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.