在迭代器中检索变量名
retrieve variable name in iterator
我在 C# 中有一个非常基本的 class,我已经实现了一个迭代器来循环它的所有字符串值(变量),这里是 foreach
代码:
string strList = "";
foreach (string param in vars)
{
strList += param + "\r\n";
}
现在这很酷,我的 class vars
包含几个 public string ...
并且它正确地循环了值,但是我还想在我的 strList
中保存什么值正在打印成一行,因此 respectove vars
变量名。
这是我到目前为止找到的解决方法,并不是我正在寻找的真正解决方案,因此我愿意接受比我的更正确的答案。在我的 class 迭代器实现中,我 return 值是这样的:
yield return first_name; yield return phone_number; ...
一个非常简单的 "solution" 是将变量名连同迭代器中的值一起传递,但是如果我需要迭代值,我将不得不拆分和过滤结果,这就是我说的原因我更喜欢更干净的解决方案:
yield return "first_name: " + first_name;
yield return "phone_number: " + phone_number;
...
我在 C# 中有一个非常基本的 class,我已经实现了一个迭代器来循环它的所有字符串值(变量),这里是 foreach
代码:
string strList = "";
foreach (string param in vars)
{
strList += param + "\r\n";
}
现在这很酷,我的 class vars
包含几个 public string ...
并且它正确地循环了值,但是我还想在我的 strList
中保存什么值正在打印成一行,因此 respectove vars
变量名。
这是我到目前为止找到的解决方法,并不是我正在寻找的真正解决方案,因此我愿意接受比我的更正确的答案。在我的 class 迭代器实现中,我 return 值是这样的:
yield return first_name; yield return phone_number; ...
一个非常简单的 "solution" 是将变量名连同迭代器中的值一起传递,但是如果我需要迭代值,我将不得不拆分和过滤结果,这就是我说的原因我更喜欢更干净的解决方案:
yield return "first_name: " + first_name;
yield return "phone_number: " + phone_number;
...