我想你只是在寻找一本字典:
var ArrayName = new Dictionary<string, string> {
{ "abc", "something" },
{ "varName", "something" },
};
Console.WriteLine(ArrayName["ab"+"c"]);
Run Code Online (Sandbox Code Playgroud)
首先编辑
或者,正如您可能知道的那样,C#允许您像索引器一样重载运算符 - 所以如果您愿意,您可以编写一个定义其自身特殊行为的类obj["string"](返回同名的成员,或其他任何内容).
public class IndexableClass
{
private string _abc = "hello world";
public string VarName { get; set; }
public string this[string name]
{
get
{
switch (name)
{
// return known names
case "abc" : return _abc;
// by default, use reflection to check for any named properties
default :
PropertyInfo pi = typeof(IndexableClass).GetProperty(name);
if (pi != null)
{
object value = pi.GetValue(this, null);
if (value is string) return value as string;
else if (value == null) return null;
else return value.ToString();
}
// if all else fails, throw exception
throw new InvalidOperationException("Property " + name + " does not exist!");
}
}
}
}
static void Main()
{
var ArrayName = new IndexableClass();
Console.WriteLine(ArrayName["ab" + "c"]);
}
Run Code Online (Sandbox Code Playgroud)
第二次编辑
还有匿名类型(var ArrayName = new { abc = "something" };)和动态类型,您可能会发现它们很有用.
| 归档时间: |
|
| 查看次数: |
209 次 |
| 最近记录: |