【发布时间】:2011-12-10 12:07:02
【问题描述】:
我需要通过索引或类似的方式访问属性。原因在this already answered question 中有解释。该答案使用Linq,我更喜欢没有这种依赖性的东西。我无法控制班级。
public class myClass
{
private string s = "some string";
public string S
{
get { return s; }
}
}
class Program
{
static void Main(string[] args)
{
myClass c = new myClass();
// I would like something similar
// or same functionality
string s = c["S"];
}
}
【问题讨论】:
-
LINQ 不是依赖项;它是 .Net 3.5 核心的一部分。如果你被困在 .Net 2.0 上,你可以简单地将答案转换为带有字典的几个
foreach循环。 -
为什么 LINQ 有问题?它现在已成为多个版本的标准功能,并且是简洁表达想法的强大工具。我 99% 确定您可以采用其他答案并将其展开到其他结构中,但是为什么要麻烦呢?
-
@SLaks:即使您被困在 .NET 2.0 上,您也可以通过 LINQBridge 获得所有 LINQ-to-Objects 优点。
-
生成的循环将比 LINQ 更丑陋且更难维护。
-
@Joe LINQ 没有问题。只是该解决方案过于冗长,甚至不完整,因为我必须添加其他过滤器。
标签: c# reflection