c# - 指向数组元素

标签 c# arrays pointers

我想要实现的是说我有一个数组,我希望能够通过指向它来修改整个代码中的特定数组元素。

例如在 C++ 中我可以做到这一点

int main(){
 int arr [5]= {1,2,3,4,5};
 int *c = &arr[3];
 cout << arr[3] <<endl;
 *c = 0;
 cout << arr[3]<<endl;
}

我做了一些谷歌搜索,似乎有一种方法可以通过“不安全”来做到这一点,但我真的不想走那条路。

我想我可以创建一个变量来存储索引,但实际上我正在处理稍微复杂一些的问题(列表中的列表。因此拥有两个索引变量似乎会增加代码的复杂性。)

C# 有一个数据绑定(bind)类,所以我当前正在做的是将数组元素绑定(bind)到文本框(我已隐藏),并在我想要修改特定数组元素时修改该文本框,但这也不是一个好方法解决方案(因为我有一个文本框没有用于其预期目的 - 有点误导)。

最佳答案

一个说明您希望使用的外观的 C# 示例会有所帮助。如果我明白你在问什么,像这样的简单类(class)就可以做到。不过,您所要求的似乎不是一个好主意。如果您展示了需要此功能的更大范围,那么有人可能会指出您根本不需要此类功能的更好设计。

public class ListElement<T> {
    private IList<T> list;
    private int index;
    public ListElement(IList<T> list, int index) {
        this.list = list;
        this.index = index;
    }
    public T Value {
        get {
            return list[index];
        }
        set {
            list[index] = value;
        }
    }
}

这个的使用看起来像

int[] arr = new int[] {1,2,3,4,5};
ListElement<int> third = new ListElement<int>(arr, 2);
Console.WriteLine(third.Value);
third.Value = 0;
Console.WriteLine(third.Value);

关于c# - 指向数组元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13918535/

相关文章:

c# - 使用来自 MVC 5 Controller 的参数执行控制台应用程序

php - MySQL : Request to make an JSON object with Array

c# - 为什么我会收到 403?

c# - 对 SSL 的 HttpWebRequest 失败

python - 找到3D数组中每个元素的最大值并将它们保存为python中的新数组

c - 填充 malloc 的内存并转换为 char 数组

c - 意外错误 :"Dereferencing pointer to incomplete type"with code::blocks,c 语言

python - 使用 Swig、python 包装 Patricia Tries 的问题

c++ - QT中widget对象的使用方法

c# - 使用 c#.net 合并两个 tiff 图像