我有一个 FooBar 类。我在我的整个代码库中都使用了这个类,并希望保持它的干净。我目前正在以这样一种方式使用 FooBar,即我有一个 FooBar 列表和一个值列表。我需要遍历列表并将值与 FooBar 元素匹配。将有多个值关联到单个 FooBar。有什么方法可以临时将列表添加到我的 FooBar 对象中,这样我就可以将值附加到该列表中吗?像这样:
List <FooBar> myFoos = GetFoos();
List <int> values = GetValues();
foreach (var value in values)
{
foreach (var foo in myFoos)
{
if (CheckMatch(foo, value))
{
if (foo.tempList == null)
{
foo.tempList = new List<int>();
}
foo.tempList.Add(value);
}
}
}
//...
//do things with the list of values on each FooBar
现在我只是创建一个新的
最佳答案
您可以使用 ExpandoObject
为此,这实际上只不过是一个 Dictionary<string, object>
.
dynamic instance = new ExpandoObject();
instance.tempList = new List<int>();
instance.tempList.Add(1);
当然,使用临时 Dictionary<FooBar, List<int>>
就是这么简单。
关于c# - 你能在 C# 中动态地向对象添加属性吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24144496/