Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 将字符串的值转换为KeyValuePair的变量<;TKey,TValue>;_C#_Typeconverter_Keyvaluepair - Fatal编程技术网

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

C# 将字符串的值转换为KeyValuePair的变量<;TKey,TValue>;,c#,typeconverter,keyvaluepair,C#,Typeconverter,Keyvaluepair,我是这样做的: foreach( KeyValuePair<int,SOME_CLASS> reader in _readerDict ) { var selectedReader = reader; var antenna1 = selectedReader.Value.Antenna1IsEnabled; var antenna2 = selectedReader.Value.Antenna2IsEnabled; var antenna3 = selectedR

我是这样做的:

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读卡器)
{
var selectedReader=读卡器;
var antenna1=已选择Reader.Value.antenna1已启用;
var antenna2=已选择Reader.Value.antenna2已启用;
var antenna3=已选择的Reader.Value.antenna3已启用;
var antenna4=已选择的Reader.Value.antenna4已启用;
}
但我想再次做如下事情:

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
    ....
  }
}
foreach(读卡器中的KeyValuePair读卡器)
{
var selectedReader=读卡器;

对于(var idx=1;idx我想您希望将
selectReader
提取为键,将
AntennaIsEnabled
提取为值

string[] parts = strA.Split('.');
var list = new List<KeyValuePair<string, string>>();
list.Add(new KeyValuePair<string, string>(part[0], part[2]));
string[]parts=strA.Split('.');
var list=新列表();
添加(新的KeyValuePair(第[0]部分,第[2]部分));

需要添加一些错误检查…

听起来您希望得到如下结果:

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);
}
Dictionary AntennaIsEnabled=new Dictionary();
foreach(读卡器中的KeyValuePair读卡器)
{
var selectedReader=读卡器;
//从你的例子
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]的语法访问每个天线的状态。

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

KeyValuePair需要两个部分,即键和值。您的字符串将被拆分?key=“selectedReader”和value=“AntennaIsEnabled”我想他有一个包含“string strA=…”的字符串,他想把它做成一本字典,所以关键字是“strA”,值是“selectedReader.value.AnetNaisenabled”。对不起,伙计们,我只是为了更准确地编辑了这个问题。是的,我想@ThorstenDittmar明白了。Thanx bro