【发布时间】:2019-09-06 12:02:18
【问题描述】:
我正在尝试做以下事情:
- 从第一种方法中,我正在遍历一堆对象(相同类型)并将指向特定属性的指针提取到列表中
- 然后这个列表将在某个时间点被提供给我程序中其他地方的另一个方法,并且必须修改原始对象的所有属性(根据提供的列表)
换句话说,假设我们有以下类:
public class Something
{
public SomeFlag = False;
public Something()
{
}
}
在系统的某个地方,我们将一个相关的对象列表组成了 List。
现在,我们要扫描这个列表并将所有标志提取到“List flags”中(通过引用?):
List<bool> flags = new List<bool>();
foreach (var stuff in List<Something>)
{
flags.Add(stuff.SomeFlag);
}
最后,在其他地方,我想更新这些标志,但更新应该会影响原始对象:
public static void SetStates(List<bool> myList)
{
// The flag should get set to true by reference in the original object
myList.SomeFlag = True;
}
【问题讨论】:
-
谢谢。我弄乱了'ref',但无处可去。不知道有没有提到它。我只是将一些属性提取到一个列表中,这些属性在修改时会影响原始对象。所以可能与如何编译这个列表有关。有什么想法吗?
-
您需要对原始对象的引用。是什么阻止您循环遍历 List
并在需要时设置它们?那么为什么不能直接将 List 传入 SetStates 呢? -
这样做似乎不会影响原始对象。
-
我不确定我是否理解。我认为 List
基本上是由原始对象组成的列表?因此,通过遍历它们并修改它们,您将修改原始对象。 -
不,您正在从对象列表中编译属性列表 - 故事中有 2 个列表